자료구조

[자료구조] 스택과 큐

전감자(◔◡◔) 2023. 4. 13. 23:54

스택과 큐는 배열에서 발전된 형태의 자료구조 입니다. 

스택과 큐는 구조는 비슷하지만 처리 방식은 살짝씩 다른데요. 두 자료구조에 대해 알아보도록 하겠습니다.

 

 

스택

스택은 삽입과 삭제 연산이 후입 선출 (먼저 들어온게 가장 나중에 나감) 로 이뤄지는 자료구조 입니다

후입 선출은 삽입과 삭제가 한 쪽에서만 일어나는 특징이 있습니다. 

스택 용어

 

위치

top : 삽입과 삭제가 일어나는 위치

 

연산

push : top 위치에 새로운 데이터를 삽입하는 연산.

pop :  top 위치에 현재 있는 데이터를 삭제하고 확인하는 연산

peek :  top 위치에 현재 있는 데이터를 단순 확인하는 연산

 

 

활용

깊이 우선 탐색(DFS) , 백트래킹 종류의 코딩데스트 

후입선출 개념 자체가 재귀함수 알고리즘 원리와 일맥상통하기 때문에 

코딩 테스트에서 많이 나오는 문제 유형이라 반드시 알아두어야 하는 자료구조 입니다.

 

큐는 삽입과 삭제 연산이 선입선출(먼저 들어온게 먼저 나가는 구조)로 이뤄지는 자료구조 입니다. 

스택과 다르게 먼저 들어온 데이터가 먼저 나갑니다. 그래서 삽입과 삭제가 양방향에서 이루어 집니다.

큐 용어

rear : 큐에서 가장 끝 데이터를 가리키는 영역이다.

front :  큐에서 가장 앞의 데이터를 가리키는 영역이다.

add  : rear 부분에 새로운 데이터를 삽입하는 연산

poll :  front 부분에 있는 데이터를 삭제하고 확인하는 연산

peek :  큐의 맨 앞 (front) 에 있는 데이터를 확인할 때 사용하는 연산

 

활용

너비우선 탐색(BFS) 

 

우선순위 큐

들어간 순서와 상관 없이 우선순위가 높은 테이터가 먼저 나오는 자료구조

큐 설정에 따라 front에 항상 최댓값 또는 최솟값이 위치

일반적으로 힙을 이용해 구현