본문 바로가기

자료구조와 알고리즘

스택과 큐 (Stack & Queue)

1. Stack

 

 

LIFO (Last in First out)

스택이 데이터를 처리하는 방식을 일컫는 말이다.

나중에 들어온 데이터가 먼저 나간다.

 

데이터를 넣기 위해 push라는 함수를 쓰면

아무 데이터도 없을 때 null을 가리키고 있던 top이

새로 들어온 데이터를 가리키게 되고

이렇게 push를 할 때마다 top이 새로운 데이터를 가리킨다.

 

데이터를 빼기 위해 pop이라는 함수를 쓰면

top이 바로 아래의 데이터를 가리키게 되고

위의 데이터를 빼서 반환한다.

 

2. Queue

 

 

FIFO (First in First out)

큐가 데이터를 처리하는 방식을 일컫는 말이다.

먼저 들어온 데이터가 먼저 나온다.

 

데이터를 넣기 위해 enqueue라는 함수를 쓰면

첫 데이터가 들어왔을 때 front와 end가 첫 데이터를 가리키게 되고

이후에 새 데이터가 들어올 때마다 end가 새 데이터를 가리킨다.

 

데이터를 빼기 위해 dequeue라는 함수를 쓰면

front가 다음 데이터를 가리키게 되고

방금까지 가리켰던 데이터를 빼서 반환한다.

 

유명한 큐로는 Circular Queue와 Priority Queue가 있다.

 

참고 : https://www.youtube.com/watch?v=j3YL_p7aqks