写一个基础代码实现顺序队列元素是二十六个小写字母之一,现在不停模拟顺序队列的入队和出队,用1和-1分别代表入队和出队操作,如果是入队,使用1后跟小写字母表示。一系列入队出队操作之后,请将队列中元素输出。
时间: 2024-03-08 20:46:21 浏览: 83
好的,下面是一个基础的顺序队列的实现代码,可以满足您的需求:
```python
MAXSIZE = 100 # 队列的最大长度
class SqQueue:
def __init__(self):
self.data = [None] * MAXSIZE
self.front = 0 # 队首指针,指向队首元素
self.rear = 0 # 队尾指针,指向队尾元素的下一个位置
def is_empty(self):
return self.front == self.rear
def is_full(self):
return (self.rear + 1) % MAXSIZE == self.front
def enqueue(self, e):
if self.is_full():
print("队列已满,无法入队!")
return False
self.data[self.rear] = e
self.rear = (self.rear + 1) % MAXSIZE
return True
def dequeue(self):
if self.is_empty():
print("队列已空,无法出队!")
return None
e = self.data[self.front]
self.front = (self.front + 1) % MAXSIZE
return e
queue = SqQueue()
actions = input().strip() # 输入一系列入队和出队操作
for i in range(len(actions)):
if actions[i] == '1': # 入队
queue.enqueue(actions[i+1])
elif actions[i] == '-': # 出队
queue.dequeue()
# 输出队列中的元素
while not queue.is_empty():
print(queue.dequeue(), end='')
```
例如,当您输入以下内容时:
```
1a1b-1c1d1e-1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z
```
程序会依次将 `a` 到 `z` 入队,然后将 `b` 到 `z` 出队,最后输出 `a`。