-
스택(stack)
- 데이터를 쌓아올린 형태의 자료구조
- 데이터가 아래부터 순서대로 쌓이며 가장 마지막에 push된 데이터가 가장 먼저 pop되는 구조를 가지고 있다.
- 스택은 정해진 방향으로만 쌓을 수 있으며 top으로 지정된 곳으로만 접근이 가능하다.
- top이 가리키는 방향으로 push할 수 있고 pop할 수 있다.
- 이런 스택 구조를 후입 선출 구조라 하며 LIFO(Last In First Out)라고 부른다.
활용처
- 브라우저 앞, 뒤로 가기
- 텍스트 편집기 실행 취소, 다시 실행
- JS에서 함수 호출 스택
- 그래프 순회에서 DFS(깊이 우선 탐색)
큐(queue)
- 데이터를 밀어내는 형태의 자료구조
- 한쪽에서는 데이터를 넣고 다른 한쪽에서는 데이터를 삭제하는 작업을 한다.
- 데이터를 넣는 곳을 rear라고 하며 데이터 넣는 것을 enqueue라고 한다.
- 데이터를 삭제하는 곳을 front라고 하며 데이터를 삭제하는 것을 dequeue라고 한다.
- 먼저 들어온 데이터가 먼저 나가는 선입 선출 구조, FIFO(First In First Out)이라고 한다.
활용처
- 인쇄하는 과정
- 고객 서비스
- 그래프 순회 BFS(너비 우선 탐색)