반응형
Stack
python list 자료구조를 사용하여 간단하게 구현
stack = [0, 1, 2]
print(stack)
stack.append(3)
print(stack)
stack.pop()
print(stack)
'''
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2]
'''
Queue
collections.deque는 double ended queue의 약자로, doubly linked list 로 구성되어있음
from collections import deque
d = deque()
print(type(d)) # <class 'collections.deque'>
#enque
for i in range(10):
d.append(i)
print(d)
'''deque([0,1,2,3,4,5,6,7,8,9])'''
#enque from left
d.appendleft(10)
print(d)
'''deque([10,0,1,2,3,4,5,6,7,8,9])'''
#index 5에 11 삽입, 나머지 오른쪽으로 밀림
d.insert(5,11)
print(d)
'''deque([10,0,1,2,3,11,4,5,6,7,8,9])'''
d.extend([0,0,0]) #오른쪽에 삽입
print(d)
'''deque([10,0,1,2,3,11,4,5,6,7,8,9,0,0,0])'''
d.extendleft([0,0,0]) #왼쪽에 삽입
print(d)
'''deque([0,0,0,10,0,1,2,3,11,4,5,6,7,8,9,0,0,0])'''
#stack의 pop처럼 리스트 오른쪽에서부터 요소 제거, Return
for i in range(10):
d.pop()
print(d)
'''deque([0,0,0,10,0,1,2,3])'''
for i in range(3):
d.popleft()
print(d)
'''deque([10,0,1,2,3])'''
print(d.pop())
'''3'''
print(d)
'''deque([10,0,1,2])'''
#작업완료후에 일반리스트처럼 사용
print(list(d))
'''[10,0,1,2]'''
반응형
'CS 101' 카테고리의 다른 글
sort 정렬 (0) | 2023.05.10 |
---|---|
[algorithm] heap [python] (0) | 2023.02.02 |
[algorithm] BFS & DFS (0) | 2023.02.02 |
[algorithm] dynamic programming [python] (1) | 2023.02.02 |
[algorithm] greedy [python] (0) | 2023.02.02 |