首页 / PYTHON / python数据结构:队列
python数据结构:队列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python数据结构:队列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2427字,纯文字阅读大概需要4分钟。
内容图文
![python数据结构:队列](/upload/InfoBanner/zyjiaocheng/837/0c6801e58c62450cbb2190580e276e67.jpg)
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,总是在队列最后。这也比较符合我们通常生活中的习惯,排在第一个的优先出列,最后来的当然排在队伍最后。
队列的实现
同栈一样,队列也可以用顺序表或者链表实现。
队列操作有:
-Queue() 创建一个空的队列
- enqueue(item) 往队列中添加一个item元素
- dequeue() 从队列头部删除一个元素
- is_empty() 判断一个队列是否为空
- size() 返回列的大小
class Queue(object):
"""队列"""
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def enqueue(self, item):
"""进队列"""
self.items.insert(0,item)
def dequeue(self):
"""出队列"""
return self.items.pop()
def size(self):
"""返回大小"""
return len(self.items)
if __name__ == "__main__":
q = Queue()
q.enqueue("hello")
q.enqueue("world")
q.enqueue("itcast")
print q.size()
print q.dequeue()
print q.dequeue()
print q.dequeue()
还有一种个对垒叫双端队列
端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构。
双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队。
其操作有:
- Deque() 创建一个空的双端队列
- add_front(item) 从队头加入一个item元素
- add_rear(item) 从队尾加入一个item元素
- remove_front() 从队头删除一个item元素
- remove_rear() 从队尾删除一个item元素
- is_empty() 判断双端队列是否为空
- size() 返回队列的大小
用程序来实现:
class?Deque(object):
????"""双端队列"""
????def?__init__(self):
????????self.items?=?[]
????def?is_empty(self):
????????"""判断队列是否为空"""
????????return?self.items?==?[]
????def?add_front(self,?item):
????????"""在队头添加元素"""
????????self.items.insert(0,item)
????def?add_rear(self,?item):
????????"""在队尾添加元素"""
????????self.items.append(item)
????def?remove_front(self):
????????"""从队头删除元素"""
????????return?self.items.pop(0)
????def?remove_rear(self):
????????"""从队尾删除元素"""
????????return?self.items.pop()
????def?size(self):
????????"""返回队列大小"""
????????return?len(self.items)
if?__name__?==?"__main__":
????deque?=?Deque()
????deque.add_front(1)
????deque.add_front(2)
????deque.add_rear(3)
????deque.add_rear(4)
????print?deque.size()
????print?deque.remove_front()
????print?deque.remove_front()
????print?deque.remove_rear()
????print?deque.remove_rear()
内容总结
以上是互联网集市为您收集整理的python数据结构:队列全部内容,希望文章能够帮你解决python数据结构:队列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。