一、队列的特征性:
- 先进先出
二、类定义队列
1、实例属性
-
a.first节点
-
b.last节点
每一个新元素进来时,都是从最后面插入进来;每一个元素要出去,都是从开头向外出。
2、实例方法
- a.进队列 enqueue
核心算法: 判断队列是否为空,如果是空则first,last都指向新加入的结点node;
如果不为空,这first指向队列第一个元素位置,在队尾插入元素完成后,last指向向后加1
- b.出队列 dequeue
核心算法:
参数:None
返回值:节点的值
队列为空时,return None;队列不为空,记录首节点first,
然后将下一个节点的值赋给first(可能为None),最后返回首节点的值。
3、练习:用上述的代码,完成67,45,34节点顺序放入队列,之后从队列的头部开始访问队列里的每一个元素。
#encoding=utf-8
class Node(object):
def __init__(self, val):
self.value = val
self.next = None
class Queue