队列是一种先进先出的线性表
我们定义如下的链表来实现队列数据结构:
定义一个头结点,左边指向队列的开头,右边指向队列的末尾,这样就可以保证我们插入一个元素和取出一个元素都是O(1)的操作。
方法一,用链表实现程序如下:
# 定义一个头结点,左边指向队列的开头,
# 右边指向队列的末尾,保证我们插入一个元素和取出一个元素都是O(1)的操作
class Head:
def __init__(self):
self.left = None
self.right = None
class Node:
def __init__(self, value):
self.value = value
self.next = None
class Queue:
def __init__(self):
# 初始化节点
self.head = Head()
def enqueue(self, value):
# 插入元素,先新建一个结点
newnode = Node(value)
p = self.head
if p.right:
# 如果head结点的右边不为None
# 说明队列中已经有元素了
temp