本文摘自php中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于python中队列的实现方法(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
对于python来说,要实现一个队列的类根据已经有的方法,是很简单的。既然队列要求一端插入,一端删除。明显,python就有这两个工具,对于队列的尾部删除用pop(0)就可以做到,头部插入,用append就可以做到。从这方面来说确实很简单,但总是要找到最优解不是吗?所以我们不用pop方法,因为对于python内部实现而言,这个方法的复杂度是O(n),为什么呢?我们删除列表的首位列表的全部元素都会往前移,这是python要保持列表的完整性
我们用循环的顺序表来实现队列。
具体思路如下:
我们从列表前面开始删除的时候,头部指针跟着元素区的起点,也就是头指针是不断随着删除向后面变化的,那么前面空着的节点,我们不浪费,当尾部指针随着加入元素走到列表最后一个位置的时候,尾部指针从新走向列表的第一个节点(空的节点),至于停止,当我们的头部指针和尾部指针汇合的时候,说明这个时候才是整个固定列表全部用完的时候,这里我们还定义了一个扩大队列可存储空间的方法,在内部调用的,当队列满时,我们就自动调用这个内部方法,扩大队列空间。
实现:
分析一下,我们可以知道
可以定义一个头指针,用于指定元素区的开始下标,self._head;
定义一个变量,用于储存元素区的长度,self._num
一个用于保存整个列表长度的变量,self._len
当然还有队列所在的列表变量, self._list
定义了几个变量之后我们来看一下几个判断:
当self._num = self._len时,说明这时候队列满了
当self._num = 0时,队列是空的
一个队列支持的操作,有几个:
建立空的队列
判断队列是否为空
取队列首位的值
出队操作
入队操作
我们还定义了一个增加列表长度的内部方法
具体实现如下:
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 |
|
思路很重要,怎么实现的反而不那么重要,你先实现,然后再看我的效果更好!
以上就是python中队列的实现方法(代码示例)的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
更多相关阅读请进入《Python》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。