队列的链表方式实现–python
class SizeExcetion(Exception):
def __init__(self):
super(SizeExcetion, self).__init__()
def __str__(self):
print("queue is empty")
class Node:
def __init__(self, item=None):
self.item = item
self.next = None
super(Node, self).__init__()
@property
def p_item(self):
return self.item
@p_item.setter
def p_item(self, item):
self.item = item
@property
def p_next(self):
return self.next
@p_next.setter
def p_next(self, next):
self.next = next
class Queue:
def __init__(self):
self.node = Node()
self._last_node = Node()
super(Queue, self).__init__()
def push(self, node: Node):
if self.node.item is None:
self.node = node
self._last_node = self.node
else:
self._last_node.next = node
self._last_node = node
def pop(self):
if self.node.next is not None:
self.node = self.node.next
else:
self.node = Node()
def __str__(self):
if self.node.item is None:
return "node is None"
return self.node.item
if __name__ == '__main__':
queue = Queue()
node = Node("第一个node")
node1 = Node("第二个node")
node2 = Node("第三个node")
queue.push(node)
queue.push(node1)
queue.push(node2)
queue.pop()
print(queue)
print(queue.node.next.item)