队列的特征是先进先出,同我们生活中的队列具有相同的特性:先排队的先办事。队列的应用场景非常多,例如消息通信、多进程间的协同、多线程间的协同等。 在算法前,我们需要先知道3个值 1、节点(节点作用是 进行一个指针(假设的)一个指向 2.就是现在这个位置上的元素的值) 2、还需要知道一个头,一个尾,就如上面两个一个head,就对应下面的代码中的first,tail就对应代码下面last, 只有知道了这三个内容,才好理解如果写
class Node(object):
def __init__(self,val):
self.next = None
self.val = val
class queue(object):
def __init__(self):
self.first = None
self.last = None
def enter(self,n):
n = Node(n)
if self.first == None:
self.first = n
self.last = self.first
else:
self.last.next = n
self.last = n
def quit(self):
if self.first == None:
return None
else:
tmp = self.first.val
self.first = self.first.next
return tmp
def quitAll(self):
if self.first == None:
return None
else:
list = []
while self.first != None:
list.append(self.first.val)
self.first = self.first.next
return list
if __name__ == '__main__':
q = queue()
q.enter(1)
q.enter(2)
q.enter(3)
q.enter(4)
q.enter(5)
q.enter(6)
print(q.quitAll())