자료구조

자료구조 Stack, Queue, Dequeue

Seon Dev Notes 2026. 3. 23. 23:42

Stack(스택)

Stack은 삽입과 삭제 같은 쪽에서만 이루어지는 LIFO(Last In First Out)형식의 선형 자료구조이다.

스택은 쌓는다는 뜻이다.

Stack 주요 용어

주요 용어 설명
Top 삽입과 삭제가 일어나는 위치를 의미합니다.
Push 스택의 맨 위(top)에 데이터를 추가하는 연산입니다.
Pop 스택의 맨 위(top)에서 데이터를 삭제하고 반환하는 연산입니다.
Peek 스택의 맨 위(top)에 있는 데이터를 제거하지 않고 반환하는 연산입니다.

예시

stack = []

stack.append(10)
stack.append(20)
stack.append(30)

print(stack)  # [10, 20, 30]

print(stack.pop())  # 30
print(stack)        # [10, 20]

Queue(큐)

큐는 한쪽(rear)에서 삽입이 이루어지고, 다른 한쪽(front)에서 삭제가 이루어지는 FIFO(First In First Out) 형식의 선형 자료구조이다.

큐는 대기줄이라는 것이다.

Queue 주요 용어

주요 용어 설명
Enqueue 큐의 맨 뒤(rear)에서 데이터를 추가하는 연산이다.
Dequeue 큐의 맨 앞(front)에서 데이터를 꺼내는(삭제하는) 연산이다.
rear 큐의 맨 뒤에 위치한 데이터를 가리키는 포인터이다.
front 큐의 맨 앞에 위치한 데이터를 가리키는 포인터이다.

예시

from collections import deque

queue = deque()

queue.append(10)
queue.append(20)
queue.append(30)

print(queue)  # deque([10, 20, 30])

queue.popleft()
print(queue)  # deque([20, 30])

queue.popleft()
print(queue)  # deque([30])

Deque(덱)

Deque는 Stack과 Queue와 달리 양쪽 끝에서 삽입과 삭제가 가능한 자료구조를 의미한다.
그래서 Stack, Queue 연산을 모두 지원한다.

주요 용어

주요 용어 설명
append(x) 덱의 맨 뒤에 데이터를 추가한다.
appendleft(x) 덱의 맨 앞에 데이터를 추가한다.
pop() 덱의 맨 뒤에서 데이터를 제거하고 반환한다.
popleft() 덱의 맨 앞에서 데이터를 제거하고 반환한다.

예시

from collections import deque

dq = deque()

dq.append(10)
dq.append(20)

dq.appendleft(5)

print(dq)  # deque([5, 10, 20])

dq.pop()
dq.popleft()

print(dq)  # deque([10])