자료구조

deque

토리쟁이 2022. 9. 8. 00:32

저번 글에서 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