使用才语言编写使用顺序队列实现上述数据进队和出队的操作,每次进队和出队操作后需要遍历队列
时间: 2024-03-14 14:42:42 浏览: 56
好的,以下是使用 Python 语言实现顺序队列的代码,包括数据进队、出队和遍历队列的操作:
```python
class SqQueue:
def __init__(self, maxsize):
self.maxsize = maxsize
self.queue = [None] * self.maxsize # 创建空队列
self.front = 0 # 队头指针
self.rear = 0 # 队尾指针
def isEmpty(self):
'''判断队列是否为空'''
if self.front == self.rear:
return True
else:
return False
def isFull(self):
'''判断队列是否已满'''
if (self.rear + 1) % self.maxsize == self.front:
return True
else:
return False
def EnQueue(self, x):
'''入队操作'''
if self.isFull():
print("队列已满,无法入队!")
return
self.queue[self.rear] = x # 将元素 x 插入队尾
self.rear = (self.rear + 1) % self.maxsize # 队尾指针后移
def DeQueue(self):
'''出队操作'''
if self.isEmpty():
print("队列为空,无法出队!")
return None
x = self.queue[self.front] # 获取队头元素
self.front = (self.front + 1) % self.maxsize # 队头指针后移
return x
def TraverseQueue(self):
'''遍历队列'''
if self.isEmpty():
print("队列为空,无法遍历!")
return
print("队列的元素为:", end="")
i = self.front
while i != self.rear:
print(self.queue[i], end=" ")
i = (i + 1) % self.maxsize # 指针后移
print()
if __name__ == '__main__':
Q = SqQueue(5) # 创建容量为 5 的顺序队列
# 测试入队操作
Q.EnQueue(1)
Q.EnQueue(2)
Q.EnQueue(3)
# 测试遍历队列操作
Q.TraverseQueue()
# 测试出队操作
x = Q.DeQueue()
print("出队元素为:", x)
# 测试遍历队列操作
Q.TraverseQueue()
```
以上代码中,我们使用类 SqQueue 来定义了一个顺序队列,包括队列最大容量 maxsize、队列元素列表 queue、队头指针 front 和队尾指针 rear。在初始化队列时,我们创建了一个空的列表,并将队头指针和队尾指针都初始化为 0。在数据进队时,我们判断队列是否已满,如果没有则将元素插入到队尾,并将队尾指针后移;在数据出队时,我们取出队头元素,并将队头指针后移。遍历队列时,我们从队头指针开始遍历,依次输出队列中的元素,直到队尾指针。
阅读全文