스택은 삽입과 삭제 연산이 후입선출(LIFO; Last-In First-out)로 이뤄진 자료구조입니다. 스택은 그림으로 이해하는 것이 쉽다고 생각해서 그림으로 살펴보겠습니다 : >
스택 용어
top: 삽입과 삭제가 일어나는 위치
push:top위치에 새로운 데이터를 삽입
pop:top위치에 현재 있는 데이터를 삭제하고 확인
peek:top위치에 현재 있는 데이터를 단순 조회스택은 깊이 우선 탐색(DFS; Depth First Search), 백트래킹 종류의 코딩 테스트에 효과적입니다. 후입선출은 재귀 함수 알고리즘의 원리와 일맥상통합니다.
큐는 삽입과 삭제 연산이 선입선출(FIFO; First-In First-Out)로 이뤄진 자료구조 입니다. 역시 그림으로 이해 해보겠습니다 :>
큐 용어
rear: 큐에서 가장 끝 데이터를 가리키는 영역
front: 큐에서 가장 앞의 데이터를 가리키는 영역
add: rear 부분에 새로운 데이터를 삽입
poll: front 부분에 있는 데이터를 삭제, 확인
peek: 큐의 front에 있는 데이터를 조회큐는 너비 우선 탐색(BFS; Breadth First Search)에서 자주 사용됩니다.
변형으로 우선순위 큐도 있는데,
우선순위 큐는 값이 들어간 순서에 상관 없이 우선순위가 높은 데이터가 먼저 나오는 구조입니다.
일반적으로 힙(heap)을 이용해 구현하는데, 힙은 트리 종류 중 하나로, 이런게 있구나 ! 정도로만 보시고 추후에 정리하겠습니다 :>