python列表数据结构,列表是python的有序序列
1.队列Queue是一种特殊的线性表,它是先进先出的。只允许前端删除,后端插入。其操作方式与stack类似,只是队列只允许在后端插入数据。
python中有相应的类:
import queue q=queue . queue()for I in range(4):q . put(I)#在队列中放一个值while not q.empty (): print q.get(),#取出值# FIFO,你应该猜到会输出什么。0 2 3条件:
如果列表中只有一个元素,那么头节点和尾节点都可以指向它。如果列表中没有元素,头节点和尾节点的指针都指向None。将空队列出队,不返回任何值。
2.加入团队需要分两种情况:
要输入的队列是空的。
要进入的队列是非空队列,因此设计了相应的算法:
如果列表为空,头节点和尾节点都指向新节点;否则放在结束节点类node (object)之后:def _ _ init _ _ (self,Data):self . Data=Data self . next=None Class Queue(object):def _ _ init _ _(self):self . head=None self . tail=None def enqueue(self,Data): node=node (data) if self。头是虚无和自我的。尾巴是无:自我。头=节点自身。tail=节点else: self。尾巴。Next=节点自身。tail=节点算法的时间,空间复杂度均为O(1)
3.如果离队,要分三种情况讨论:
要发出的队列为空,只有一个节点或多个节点。设计了以下算法:
如果列表为空,如果列表有节点,则返回none。
2.1存储头节点的值。
2.2头节点和尾节点指向无
2.3返回头节点的值。
否则:
3.1存储头节点的值。
3.2将首节点转移到下一个节点
3.3返回头节点的值
def dequeue(self):如果self.head为None且self.tail为None:返回None data=self . head . data if self . head==self . tail:self . head=None self . tail=None other:self。head=self.head.next返回数据算法的时空复杂度为O(1)
4.LIFO队列Q=队列。LIFO queue()for I in range(5):q . put(I)while not q . empty():print q . get(),# output: 4 3 2 1 0
历史提交的图片或压缩文件
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。