((Python3)数据结构)数据结构–队列的原理及实现队列的原理及实现
前言前言
有Python基础
学过数据结构那就更妙了
原理和需要注意的点原理和需要注意的点
先进先出先进先出
注意:栈是先进后出
灵感来源于生活,也许这个“队列”就是根据生活中的排队的队列所命名的。因为它们的特点是共通的,都是先来排队的先出
去,即先进先出。因此在想到数据结构中的队列时候,将其与生活中的排队联系起来即可。
图片来源于百度百科,链接: https://baike.baidu.com/item/%E9%98%9F%E5%88%97/14580481?fr=aladdin
初始化时,队列为空
添加元素时,添加的第一个元素作为队头,之后加入的元素需要排在他的后面(类似于现实生活中的排队)
出队时,排在开头的人先出,之后再轮到后面的元素
不同于栈,栈是只对栈顶元素操作,队列则是对队头队尾的元素操作。
实现实现
针对上面的分析来实现一下。环境:win10 + pycharm + python3.7。Python3是重点,其他的可换。
队列的初始化,按上面的话讲,应是空的队列,初始化类似栈,同样的是采用list类型作为items
class Queue(object):
def __init__(self):
self.items = []
判空、遍历、size方法依旧采用之前博客中的方法,链接 https://blog.csdn.net/sf9898/article/details/104939489
def isEmpty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
def travel(self):
for i in self.items:
print(i, end= ' ')
print('')
队列的重要部分,和栈区别的部分,即添加和删除操作,入队的时候肯定是从队尾排起,因此直接将加进来的元素加到队尾即
可,现在用list类型的items模拟队列,将items的第一个元素作为队头,最后一个元素作为队尾,那么在做将元素加到队尾的这
一步操作时,直接用append即可。
出队的时候,是从队头开始走人的。那么用pop(0)即可。
评论0
最新资源