728x90
1. Stack 스택 자료구조
선입후출 (First In Last Out) 구조
stack = []
stack.append(1) # push 를 append()로 구현한다.
stack.append(2)
stack.append(3)
stack.pop()
stack.append(4)
print(stack) # 스택의 가장 밑에 있는 원소부터 출력
print(stack[::-1]) # 스택 가장 위에 있는 원소부터 출력
<결과>
[1, 2, 4]
[4, 2, 1]
파이썬에서 stack 자료구조를 구현하기 위해서는 이렇게 다른 라이브러리가 필요없이, list 구조에서 append()와 pop()으로 간단히 구현할 수 있다.
2. Queue 큐 자료구조
선입선출 (First In First Out) 구조 , 나중에 온 사람이 나중에 들어가는 공정한 자료구조
파이썬에서는 collections 모듈에서 제공하는 deque 자료구조를 활용하여 큐를 구현할 수 있다.
from collections import deque
queue = deque() # empty queue declaration
queue.append(1)
queue.append(2)
queue.append(3)
queue.append(4)
queue.popleft() # 맨 처음 큐에 들어온 1이 pop 된다 !
queue.append(100)
print(queue)
queue.reverse() # 순서를 거꾸로 바꿔준다.
print(queue)
<결과>
deque([2, 3, 4, 100])
deque([100, 4, 3, 2])
학교에서 C로 직접 스택과 큐를 구현할때보다 정말 파이썬은 몇줄이면 구현가능하니까...ㅋㅋㅋㅋㅋ 편하다 !
궁금해서 queue가 empty상태일 때에 popleft()를 하면 파이썬에서는 어떻게 되나 실험해봤다.
from collections import deque
queue = deque() # empty queue declaration
queue.append(1)
queue.append(2)
queue.append(3)
queue.popleft() # 맨 처음 큐에 들어온 1이 pop 된다 !
print(queue)
queue.popleft() # 2
print(queue)
queue.popleft() # 3
print(queue)
queue.popleft()
<결과: 컴파일 에러>
728x90
'Programming Languages > Python' 카테고리의 다른 글
[Python] defaultdict 문법 정리 (0) | 2022.09.11 |
---|---|
Python 다익스트라 최단경로 알고리즘 (0) | 2022.01.31 |
python bisect, bisect_left, bisect_right (0) | 2022.01.25 |
[Python] 파이썬 join 함수 (파이썬 문자열 리스트 합치기) (0) | 2022.01.22 |
python enumerate 의 사용 (0) | 2022.01.17 |