리스트의 양쪽 끝에서 삽입과 삭제가 모두 이루어지는 자료구조.
스택과 큐를 혼합한 구조로, 하나의 배열을 선언한 후 2개의 포인터로 양쪽 끝을 가리키고 이것을 이용하여 양쪽에서 삽입 및 삭제 연산을 수행한다.
양 방향(앞, 뒤)에서 모두 삽입과 삭제가 수행되어야할 때 사용한다.
python 3.8
# Deque
class Deque(object):
def __init__(self):
self.deque = []
def is_empty(self):
if self.deque:
return False
return True
def add_rear(self, data):
self.deque.append(data)
def add_front(self, data):
self.deque.insert(0, data)
def remove_rear(self):
deleted = None
if self.is_empty():
print('Deque is empty!')
else:
deleted = self.deque.pop()
return deleted
def remove_front(self):
deleted = None
if self.is_empty():
print('Deque is empty!')
else:
deleted = self.deque.pop(0)
return deleted
github : https://github.com/honeybeeveloper/data-structure/blob/develop/deque.py
참고 : 책 <그림으로 정리한 알고리즘과 자료구조>