저번 글에서 queue에 대해 다뤘었는데, dequeue는 FIFO의 방식으로 작동한다.
덱(데큐)란, 큐는 큐이지만 양방향인 큐이다.
deque는 스택과 큐의 기능을 모두 가진 객체로 양쪽이 뻥 뚫린 관이라고 생각하면 된다.
양쪽 방향에서 모두 요소를 추가 or 제거할 수 있다.
리스트가 있는데 굳이 데큐를 사용하는 이유는 무엇일까?
=> 왜냐하면, 리스트보다 데큐의 속도가 훨씬 빠르기 때문이다.
리스트: O(n) vs 데큐: O(1)
deque는 스택으로도, 큐로도 사용할 수 있다.
from collections import deque
dq=deque()
이처럼 collections 모듈에서 import하여 사용하면 된다.
dq = deque([1,2,3,4,5])
() 괄호 안에는 문자열과 리스트같이 iterable한 것을 쓰면 된다.
위와 같이 여러 기능들도 존재해 간편하게 사용이 가능하다.
위의 표에 안나와 있는 기능들도 추가로 조금 나열해보도록 하겠다.
1. deque.clear() : deque 안에 있는 모든 요소를 제거
from collections import deque
dq = deque([1,2,3,4])
dq.clear()
print(dq)
#output
#deque([])
2. deque.insert(i, x): i번째 인덱스에 x를 삽입
from collections import deque
dq = deque([1,2,3,4])
dq.insert(3, 'a')
print(dq)
#output
#deque([1, 2, 3, 'a', 4])
'자료구조' 카테고리의 다른 글
자료구조7- 우선순위 큐 & 힙 (0) | 2022.07.17 |
---|---|
자료구조6 - 트리의 순회와 구현 (0) | 2022.07.14 |
자료구조5 - 트리 (0) | 2022.07.14 |
자료구조4- 스택&큐 (0) | 2022.07.13 |
자료구조 문제풀이 - 주문처리 (큐) (0) | 2022.07.13 |