class Node:
def __init__(self, data):
self.data = data
self.next = None
class Queue:
def __init__(self):
self.__head = None
self.__tail = None
def push(self, data):
node = Node(data)
if not self.__head:
self.__head = node
if self.__tail:
self.__tail.next = node
self.__tail = node
def pop(self):
if not self.__head:
raise Exception("队列是空的!")
returnedValue = self.__head.data
self.__head = self.__head.next
if not self.__head:
self.__tail = None
return returnedValue
def empty(self):
return not bool(self.__head)
def __len__(self):
count = 0
temp = self.__head
while temp:
count += 1
temp = temp.next
return count
def front(self):
if not self.__head:
raise Exception("队列是空的!")
return self.__head.data
def back(self):
if not self.__tail:
raise Exception("队列是空的!")
return self.__tail.data
queue = Queue()
queue.push(1)
queue.push(4)
queue.push(5)
queue.push(7)
queue.push(9)
print(len(queue))
print(queue.front())
print(queue.back())
print(queue.pop())
print(queue.pop())
print(queue.empty())
print(queue.pop())
print(queue.pop())
print(queue.pop())
print(queue.pop())