Python实现队列
2024-09-07 01:48:52
队列的数据结构的主要结构:一个结点类和两个方法:出队列和进队列
class Node(object):
def __init__(self,val):
self.val = val
self.next = None class MyQueue(object):
def __init__(self):
self.first = None
self.last = None def put(self, n):
packNode = Node(n)
if self.first == None:
self.first = packNode
self.last = packNode
else:
self.last.next = packNode
self.last = packNode def get(self):
if self.first==None:
return None
elif self.first==self.last:
tmp=self.first.val
self.first,self.last=self.first.next,self.first.next
return tmp
else:
tmp=self.first.val
self.first=self.first.next
return tmp if __name__ == '__main__':
q = MyQueue()
q.put(1)
print q.first.val
print q.last.val
q.put(2)
print q.first.val
print q.last.val
print q.get()
算法分析:
每一个结点包含当前结点的值和下一个结点的实例(下个结点的值和下下个结点的实例),这样才串成队列
1、定义一个类:结点。包含两个变量:结点的值(val)和下一个结点(next)的实例信息
2、在另一个类:队列。定义两个变量:指向队列的开头和结尾的结点实例
3、对队列操作的两个方法:
(1)入队列:
和队列中建立连接:实例化一个结点信息,赋值给 队列结尾的结点的next变量;
加入到队列结尾:然后把队列结尾的值赋值为实例化的那个结点
(2)出队列:
把队列开头的结点赋值为下一个结点实例;
返回复制前的实例的值(val)
最新文章
- mysql 5.7配置文件参数详解
- MySQL记录
- 【.net程序破解】实战之标志位破解绕过注册法
- Java中的定时调度
- http文件的断点续传和下载
- Windows Message Queue(优先队列)
- Android应用开发学习笔记之ContentProvider
- C++异常(exception)第一篇--综合讲解
- CF1097G Vladislav and a Great Legend
- 获得ztree的所有子节点id
- 智能ERP主副机设置
- 数据分析:基于Python的自定义文件格式转换系统
- centos查看系统版本
- javaScript之表格操作<;一:新增行>;
- POJ 1122.FDNY to the Rescue! Dijkstra
- python实现百度地图API获取某地址的经纬度
- 问答项目---登陆也要做验证!(JS和PHP验证)
- 20145221 《Java程序设计》第八周学习总结
- Cookie &;&; Session之验证实例
- docker-compose部署zk集群、kafka集群以及kafka-manager,及其遇到的问题和解决