본문 바로가기

Legacy(~18.10)/컴퓨터공학

[Data Structure] Deque - 이론 && ADT

반응형

Deque


  • 양쪽 끝에서(rear, front) 삽입, 삭제를 모두 수행할 수 있다.

  • Deque가 Stack과 Queue의 특징을 모두 취할 수 있어도 LIFO, FIFO 순서를 정하도록 요구하지는 않는다.

  • 전적으로 Deque를 어떻게 사용할지는 사용자에 선택에 달려 있다.


class Deque:
   def __init__(self):
       '''
      데큐를 리스트로 초기화한다.
      '''
       self.deque = []

   def isEmpty(self):
       '''
      데큐의 길이가 0인지를 확인한다.
      '''
       return len(self.deque) == 0

   def addFront(self, item):
       '''
      데큐의 Front에 item을 추가한다.
      '''
       self.deque.append(item)

   def addRear(self, item):
       '''
      데큐의 Rear에 item을 추가한다.
      '''
       self.deque.insert(0, item)

   def removeFront(self):
       '''
      데큐의 Front에 있는 item을 제거한다.
      '''
       return self.deque.pop()

   def removeRear(self):
       '''
      데큐의 Rear에 있는 item을 제거한다.
      '''
       return self.deque.pop(0)

   def size(self):
       '''
      데큐의 길이를 반환한다.
      '''
       return len(self.deque)


반응형