队列的数据结构的主要结构:一个结点类和两个方法:出队列和进队列

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)

最新文章

  1. mysql 5.7配置文件参数详解
  2. MySQL记录
  3. 【.net程序破解】实战之标志位破解绕过注册法
  4. Java中的定时调度
  5. http文件的断点续传和下载
  6. Windows Message Queue(优先队列)
  7. Android应用开发学习笔记之ContentProvider
  8. C++异常(exception)第一篇--综合讲解
  9. CF1097G Vladislav and a Great Legend
  10. 获得ztree的所有子节点id
  11. 智能ERP主副机设置
  12. 数据分析:基于Python的自定义文件格式转换系统
  13. centos查看系统版本
  14. javaScript之表格操作<一:新增行>
  15. POJ 1122.FDNY to the Rescue! Dijkstra
  16. python实现百度地图API获取某地址的经纬度
  17. 问答项目---登陆也要做验证!(JS和PHP验证)
  18. 20145221 《Java程序设计》第八周学习总结
  19. Cookie && Session之验证实例
  20. docker-compose部署zk集群、kafka集群以及kafka-manager,及其遇到的问题和解决

热门文章

  1. oracle时间计算
  2. PHP实现qq三方登录
  3. Android内购订单验证 --- nodejs实现
  4. C语言数组篇(五)多级指针和二维数组指针的区别
  5. impala presto SparkSql性能测试对比
  6. Android 意图通用类 IntentUrl
  7. Android 用Chrome浏览器打开url 自定义样式
  8. 17 rest-framework框架的基本组件
  9. mybatis和redis整合 log4j打印sql语句
  10. linux udp c/s