这篇文章主要介绍python双端队列的原理是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float(浮点型)。2.字符串,分别是str类型和unicode类型。3.布尔型,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。4.列表,列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型。5. 元组,元组用”()”标识,内部元素用逗号隔开。6. 字典,字典是一种键值对的集合。7. 集合,集合是一个无序的、不重复的数据组合。
1、概念
具有队列和栈性质的数据结构。双端队列的要素可以从两端弹出,限定插入和删除操作在表的两端进行。双端队列可以在队列的任何一端进出。
2、原理
双端队列是一种具有队列和栈性质的数据结构。双端队列的元素可以从两端弹出,有限的插入和删除操作可以在队列的两端进行。可以理解为双端队列可以从队列的两端添加和删除元素,我们可以在创建或实例双端队列时指定队列的长度或大小。当队列满了,我们可以反向删除过期元素(从前删除),然后在队列的末尾添加新元素。
3、实例
# -- encoding: utf-8 --
# @time: 2021/4/18 11:49
# @Author: jsonLiu
# @Email: xxxxxxxxx@qq.com
# @file: deque
# 双端队列
"""
- Deque()创建一个空的双端队列。它不需要参数,且会返回一个空的双端队列。
- addFront(item)将一个元素添加到双端队列的前端。它接受一个元素作为参数,没有返回值
- addRear (item)将一个元素添加到双端队列的后端。它接受一个元素作为参数,没有返回值。
- popFront()从双端队列的前端移除一个元素。它不需要参数,且会返回一个元素,并修改双端队列的内容。
- popRear()从双端队列的后端移除一个元素。它不需要参数,且会返回一个元素,并修改双端队列的内容。
- isEmpty()检查双端队列是否为空。它不需要参数,且会返回一个布尔值。
- size()返回双端队列中元素的数目。它不需要参数,且会返回一个整数。
"""
class Deque1:
"""假设双端队列的后端是列表位置0处"""
def __init__(self):
self.__list = []
def isEmpty(self):
# return self.__list == []
return not self.__list
def size(self):
return len(self.__list)
def add_front(self, item):
"""添加到双端队列前端"""
self.__list.append(item)
def add_rear(self, item):
"""添加到双端队列后端"""
self.__list.insert(0, item)
def pop_front(self):
"""从双端队列的前端移除一个元素"""
return self.__list.pop(len(self.__list) - 1)
# return self.__list.pop()
def pop_rear(self):
"""双端队列的后端移除一个元素"""
return self.__list.pop(0)
class Deque2:
"""假设双端队列的前端是列表位置0处"""
def __init__(self):
self.__list = []
def isEmpty(self):
# return self.__list == []
return not self.__list
def size(self):
return len(self.__list)
def add_front(self, item):
"""添加到双端队列前端"""
self.__list.insert(0, item)
def add_rear(self, item):
"""添加到双端队列后端"""
self.__list.append(item)
def pop_front(self):
"""从双端队列的前端移除一个元素"""
return self.__list.pop(0)
def pop_rear(self):
"""双端队列的后端移除一个元素"""
# return self.__list.pop()
return self.__list.pop(len(self.__list) - 1)
if __name__ == '__main__':
d = Deque2()
# d = Deque1()
print(d.isEmpty()) # True
d.add_rear(4)
d.add_rear(3)
d.add_front(2)
d.add_front(1)
print(d.size()) # 4
d.add_rear(5)
print(d.pop_rear())
print(d.pop_front())
以上是“python双端队列的原理是什么”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://www.py.cn/jishu/jichu/30124.html