본문 바로가기

CS 101

[algorithm] Stack&Queue [python]

반응형

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