1、判断队列是否为空
复制代码
1
2
3def is_empty(self): return self._length==0
2、判断队列的长度
复制代码
1
2
3def length(self): return self._length
3、添加一个元素item到队尾
复制代码
1
2
3
4
5
6
7
8
9
10
11def push(self,item): 新建一个node节点 node=Node(item) 如果队列为空 if self.empty(): self.head=node self.rear=node else: self.rear.next=node self.rear=node
当原链表为空时,新增1个节点
头节点self.head指向node节点
同时尾节点self.rear指向node节点
新增的node节点的指针域不指向其他节点,指针域为空
原链表不为空时,新增一个节点
node=Node(2)
self.rear.next=node
self.rear=node
4、抛出队首元素
复制代码
1
2
3
4
5
6
7
8
9def pop(self): if is_empty(): raise ValueError('队列为空') else: value=self.head.data self.head=self.head.next self._length-=1 return value
5、获取对头
复制代码
1
2
3
4
5
6def seek(self): if self.is_empty(): raise ValueError('队列为空') else: return self.head.data
代码块
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59class Node: def __init__(self,data,_next=None): self.data=data #数据域 self.next=_next #指针域 class Queue: def __init__(self): self.head=None #队列的队头 self.rear=None #队列的队尾 self._length=0 #队列的长度 def is_empty(self): return self._length==0 def length(self): return self._length def push(self,item): #添加一个元素item到队尾 node=Node(item) #如果队列为空 if self.is_empty(): self.head=node self.rear=node else: #让现在队尾的next节点指向新的node节点 self.rear.next=node #让队尾节点指向新的节点 self.rear=node self._length+=1 def pop(self): #抛出队首元素 if self.is_empty(): raise ValueError('队列为空') value=self.head.data self.head=self.head.next self._length -= 1 return value def peek(self): if self.is_empty(): raise ValueError('队列为空') return self.head.data if __name__ == '__main__': queue=Queue() queue.push(1) queue.push(2) queue.push(3) queue.push(4) print(queue.length()) print(queue.pop()) print(queue.pop()) print(queue.pop()) print(queue.pop()) #print(queue.pop())
最后
以上就是酷炫纸鹤最近收集整理的关于【python】队列——用链表实现队列操作的全部内容,更多相关【python】队列——用链表实现队列操作内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复