코드 5-12를 보면 deque을 임포트합니다. 덱의 메서드 이름을 보면 adt와는 조금 다르지만 충분히 유추할 수 있습니다. 먼저 rear에 데이터를 입력할 때는 append()를 호출합니다. rear에서 데이터를 출력할 때는 pop()을 호출합니다. front에 데이터를 입력할 때는 appendleft()를 호출하고, front에서 데이터를 출력할 때는 popleft()를 호출합니다. 리스트와 사용법이 비슷하기 때문에 쉽게 쓸 수 있습니다. 코드 5-12에서 스택을 흉내 낸 코드를 보면 먼저 append()로 rear에 데이터를 넣고 pop()으로 rear에서 데이터를 꺼냅니다. rear가 top인 셈이지요. 큐를 흉내 낸 코드를 보면, 먼저 append()로 rear에 데이터를 넣고 popleft()로 front에서 데이터를 꺼냅니다. 실행 결과를 확인해 볼까요?
******************** STACK ********************
deque([1])
deque([1, 2])
deque([1, 2, 3])
deque([1, 2, 3, 4])
deque([1, 2, 3, 4, 5])
5
4
3
2
1
******************** QUEUE ********************
deque([1])
deque([1, 2])
deque([1, 2, 3])
deque([1, 2, 3, 4])
deque([1, 2, 3, 4, 5])
1
2
3
4
5