-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStack_Queue.py
More file actions
36 lines (28 loc) · 1.68 KB
/
Stack_Queue.py
File metadata and controls
36 lines (28 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 03-5. 스택과 큐
# - 스택(Stack)과 큐(Queue)는 자료구조의 기초이며, 파이썬에서는 리스트에서 발전한 자료구조이다.
# 1. 스택(Stack)
# - 스택은 박스 쌓기와 같은 구조로, 후입선출(Last-in First-out) 구조를 가진다.
# 따라서 삽입과 삭제가 한 방향에서 이루어진다.
# - 파이썬에서는 리스트를 사용하여 스택을 구현할 수 있다.
# 특징)
# 1) 위치 - top: 삽입과 삭제가 일어나는 위치
# 2) 연산 방법
# - List.append(): top에 새 데이터를 삽입한다.
# - List.pop(): top의 데이터를 삭제하고 확인한다(반환한다).
# - List[-1]: top에 있는 데이터를 확인한다.
# - 스택은 깊이우선탐색 DFS, 백트래킹 같은 코딩 테스트에서 효과적이다.
# - 또, 후입선출의 개념은 재귀 함수 알고리즘 원리와 비슷하다.
# 2. 큐(Queue)
# - 큐는 줄을 서는 것과 같은 구조로, 선입선출(First-in First-out) 구조를 가진다.
# 따라서 삽입과 삭제가 양방향에서 이루어지고, 먼저 들어온 데이터가 먼저 나간다.
# - 새 데이터는 큐의 rear에서 삽입되고, 삭제는 front에서 이루어진다.
# - 파이썬에서는 보통 deque를 사용하여 큐를 구현한다.
# 특징)
# 1) 위치
# - rear: 큐에서 가장 끝 데이터를 가리킨다.
# - front: 큐에서 가장 앞 데이터를 가리킨다.
# 2) 연산
# - List.append(): rear에 새 데이터를 삽입한다.
# - List.popleft(): front의 데이터를 삭제하고 확인한다(반환한다).
# - List[0]: front(큐의 가장 앞 데이터)에 있는 데이터를 확인한다.
# - 큐는 너비우선탐색 BFS에서 자주 사용된다.