deque
- 파이썬으로 DFS,BFS를 공부하면서 deque이라는 것을 배웠다.
- deque은 스택과 큐의 기능을 모두 가진 객체로 출입구가 양방향인게 특징이다. 파이썬의 list와 같이 요소들을 한곳에 담아두는 배열이다.
- list와 유사한데 deque를 사용하는 이유는 연산이 자주 일어나는 알고리즘에서 속도와 성능면에서 list보다 훨씬 좋기 때문이다.
from collections import deque
queue = deque()
위의 코드를 작성함으로써 deque을 사용할 수 있다. 괄호 안에는 문자열 또는 리스트 형태를 넣으면 된다.
- deque을 만들때 deque(문자열)을 넣어 만들면 각각의 문자를 요소로 구성된 리스트 형태의 deque를 만든다.
- 스택을 구현할때는 append(), pop() 함수를 이용해 구현할 수 있다.
- 큐를 구현할때는 입출력 방향을 어디로 정하는지에 따라서 append(), pop(), appendleft(), popleft() 함수를 이용해 구현할 수 있다.
- 확장도 가능하다. extend(추가할 요소) 함수를 사용해 오른쪽으로 확장 가능하고 왼쪽으로 확장할려면 extendleft(추가할 요소) 함수를 사용하면 된다.
- 삽입과 삭제도 가능하다. 삽입은 insert(삽입할 위치, 삽입할 요소) 함수를 사용하면 되면 삽입하는 위치에 있는 요소부터 뒤에 있는 요소는 뒤로 밀린다. 삭제는 remove(삭제할 요소)를 사용하면 된다.
- 요소들의 순서를 뒤집을수도 있다. reverse() 함수를 사용하면 요소가 뒤집힌다.
- deque을 사용하는 방법은 list와 매우 유사하다. list와 같이 내가 원하는 위치의 요소의 내용을 바꿀려면 변수[인덱스위치] = 저장할요소값 을 사용하면 원하는 위치의 요소값을 변경할 수 있다.
- deque의 요소들을 회전시킬수도 있다. rotate() 함수를 사용해 ()안에 양수를 넣으면 양수만큼 오른쪽으로 회전하고 음수를 넣으면 음수만큼 왼쪽으로 회전한다.
- deque는 deque(maxlen)을 넣어 최대 길이를 설정할수도 있다.