Queue

Queue란 ?

Queue는 선입선출 FIFO(First In First Out)의 자료구조 이다. Cache구현, 프로세스 관리, 너비우선탐색(BFS) 등에 활용된다.

enqueue와 dequeue

<—dequeue— 1 2 3 4 5 6 <—enqueue—

enqueue : queue에서 데이터를 추가하는 것. 맨 뒤에서 데이터를 추가하면 완료되기 때문에 O(1)의 시간복잡도.

dequeue : queue에서 데이터를 삭제하는 것. 맨 앞에서 데이터를 삭제하면 완료되기 때문에 O(1) 의 시간복잡도.

Array-based Queue

enqueue와 dequeue 과정에서 남는 메모리가 발생할 수 있다. 이 때 메모리의 낭비를 주리기 위해 주로 Circular queue 형식으로 구현한다.



Stack

Stack 이란?

Stack은 후입선출 LIFO(Last In First Out)의 자료구조 이다. 후위 표기법 연산, 괄호 유효성 검사, 웹 브라우저 방문기록(뒤로 가기), 깊이우선 탐색(DFS) 등에 활용된다.

push와 pop

push : stack에서 데이터를 추가하는 것. stack의 맨 뒤에서 데이터를 추가하면 완료되기 때문에 O(1)의 시간복잡도.

pop : stack에서 데이터를 추출하는 것. stack의 맨 뒤에서 데이터를 삭제하면 완료되기 때문에 O(1)의 시간복잡도.

-> push와 pop은 모두 stack의 top에서 원소를 추가하거나 삭제하는 형식으로 구현된다.

댓글남기기