enqueue(item)
: item을 queue의 한쪽 끝에 삽입dequeue()
: 다른 끝에서 item 꺼내기peek()
: 맨 앞의 원소 참조from doubly_linked_list import *
class Queue:
def __init__(self):
self.data = DoublyLinkedList()
def __repr__(self):
return 'Queue:' + str(self.data)
def __len__(self):
return len(self.data)
def isEmpty(self):
return len(self) == 0
def enqueue(self, item):
node = Node(item)
self.data.insertAt(len(self), node)
def dequeue(self):
if self.isEmpty():
raise IndexError('dequeue from empty queue')
return self.data.popAt(0)
def peek(self):
if self.isEmpty():
raise IndexError('queue is empty')
return self.data[0]
print('# 빈 큐 생성')
q = LinkedListQueue()
print('생성한 큐:', q)
print('\n# 1, 2, 3 을 차례대로 삽입')
for item in [1,2,3]:
q.enqueue(item)
print('Queue:', q)
print('\n# dequeue로 꺼내기')
print('꺼낸 원소:', q.dequeue())
print('Queue:', q)
print('\n# 앞 원소 peek')
print('peek한 원소:', q.peek())
# 빈 큐 생성 생성한 큐: [] # 1, 2, 3 을 차례대로 삽입 Queue: [1] Queue: [1, 2] Queue: [1, 2, 3] # dequeue로 꺼내기 꺼낸 원소: 1 Queue: [2, 3] # 앞 원소 peek peek한 원소: 2
소스코드: queue.py