链表队列快速实现
class Node(object):
def __init__(self,elem,next = None):
self.elem = elem
self.next = next
class Queue(object):
def __init__(self):
self.head = None
self.rear = None
def is_empty(self):
return self.head is None
def enqueue(self,elem):
p = Node(elem)
if self.is_empty():
self.head = p
self.rear = p
else:
self.rear.next = p
self.rear = p
def dequeue(self):
if self.is_empty():
print('无法出队')
else:
result = self.head.elem
self.head = self.head.next
return result
def peek(self):
if self.is_empty():
print('队列为空,无头部元素')
else:
return self.head.elem
def travel(self):
cur = self.head
queue = []
while cur != None:
queue.append(cur.elem)
cur = cur.next
print(queue)
数组队列快速实现
class Queue():
def __init__(self):
self.entries = []
self.length = 0
self.front = 0
def enqueue(self,item):
self.entries.append(item)
self.length = self.length + 1
def dequeue(self):
self.length = self.length - 1
dequeued = self.entries[self.front]
self.front += 1
self.entries = self.entries[self.front:]
return dequeued
def peek(self):
return self.entries[0]