덱 (Deque)

honeybeeveloper·2022년 8월 10일
0

덱(Deque)

리스트의 양쪽 끝에서 삽입과 삭제가 모두 이루어지는 자료구조.
스택과 큐를 혼합한 구조로, 하나의 배열을 선언한 후 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
참고 : 책 <그림으로 정리한 알고리즘과 자료구조>

profile
꿀벌같은 개발자가 되고 싶습니다.

0개의 댓글