概述
定义:
队列是一种特殊的线性表,遵循“ 先进先出”的原则,操作在两端进行,插入元素的一端被称为队尾(real),删除元素的一端称为队头(front)。队头指针实际指向队头元素所在位置的前一个位置,队尾指针指向实际队尾元素所在位置。顺序队列中的元素恒为rear-front,其中队空的条件为front = rear;队满的条件为rear+1=MaxQueueSize。
python实现:
class SequenceQueue:
def __init__(self):
self.MaxQueueSize = 10
self.s = [None for x in range(0,self.MaxQueueSize)]
self.front = 0
self.rear = 0
'''当前队列是否为空'''
def IsEmptyQueue(self):
if self.front == self.rear:
iQueue = True
else:
iQueue = False
return iQueue
'''元素进队'''
def EnQueue(self,x):
if self.rear < self.MaxQueueSize-1:
self.rear = self.rear+1
self.s[self.rear] = x
print("当前进队元素为:",x)
else:
print("队列已满,无法入队")
return
'''元素出队'''
def DeQueue(self):
if self.IsEmptyQueue():
print("队列为空")
return
else:
self.front = self.front+1
return self.s[self.front]
'''获取队头元素'''
def GetHead(self):
if self.IsEmptyQueue():
print("队列为空")
return
else:
return self.s[self.front+1]
'''获取队列长度'''
def GetQueueLength(self):
return self.rear - self.front
'''创建队列'''
def CreateQueueByInput(self):
data = input("请输入入队元素(回车确定,#结束):")
while data != "#":
self.EnQueue(data)
data = input("请输入入队元素(回车确定,#结束):")
'''遍历顺序队列内的所有元素'''
def QueueTraverse(self):
if self.IsEmptyQueue():
print("队列为空")
return
else:
i= self.front+1
while i < self.rear+1:
print(self.s[i],end = ' ')
i = i+1
sq = SequenceQueue()
sq.CreateQueueByInput()
print("顺序队列的元素为:")
sq. QueueTraverse()
结果如下:
最后
以上就是舒心棒棒糖为你收集整理的数据结构之python实现队列的顺序存储的全部内容,希望文章能够帮你解决数据结构之python实现队列的顺序存储所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复