Computer Science/Algorithm, Data Structure 12

자바스크립트 자료구조 연결 리스트(Linked List)

모든 자바스크립트 개발자가 알아야 하는 33가지 개념 지난 글에서 Stack과 Queue에 대해 알아보았고 오늘은 연결 리스트(Linked List)를 알아보자. 배열과 마찬가지로 연결 리스트는 데이터를 순차적으로 저장한다. 연결 리스트는 색인(index)을 유지하는 대신 다른 요소에 대한 포인터를 보유한다. 우선 단일 연결 리스트(단방향) 생각해보자. 첫 번째 노드(데이터를 저장)는 머리(head), 마지막 노드는 꼬리(tail)라 한다. 첫 번째 노드가 다음 노드를 가리키고 이어서 또 다음 노드를 가리키는 방식이다. 노드는 데이터를 저장할 공간과 다음 노드의 포인터 공간으로 나누어진다. 이중 연결 리스트(양방향)는 이전 노드, 다음 노드 주소를 함께 저장한다. 원형 연결 리스트는 단일 연결 리스트에 ..

자바스크립트 자료구조 스택(Stack), 큐(Queue)

모든 자바스크립트 개발자가 알아야 하는 33가지 개념 Chapter 27 Data Structures Chapter마다 도장깨기 하듯이 공부를 하니까 어느새 27장까지 왔다. Chapter 27 ~ 29까지는 자료 구조, Big O 표기, 알고리즘을 다룬다. 자료구조와 알고리즘에서는 스택, 큐, 연결 리스트, 트리, 그래프, 해쉬 테이블을 그리고 Big O 표기를 이론 공부를 해보자. 스택(Stack) 함수를 실행할 때마다 함수의 범위를 밀어 넣는 Call Stack(호출 스택)은 스택이라는 자료구조를 사용하였다. 스택은 두 가지 연산(push, pop)을 통해 요소 컬렉션으로 사용된다. LIFO(Last in First Out) class Stack { constructor() { this.data =..