我是靠谱客的博主 酷炫纸鹤,这篇文章主要介绍【python】队列——用链表实现队列操作,现在分享给大家,希望可以做个参考。

1、判断队列是否为空

复制代码
1
2
3
def is_empty(self): return self._length==0

2、判断队列的长度

复制代码
1
2
3
def length(self): return self._length

3、添加一个元素item到队尾

复制代码
1
2
3
4
5
6
7
8
9
10
11
def 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
9
def 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
6
def 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
59
class 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】队列——用链表实现队列操作内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部