编程实现栈的如下功能: (1)根据输入的栈中元素个数n和各元素值建立一个顺序栈,并输出栈中各元素值。 (2)将数据元素e入栈,并输出入栈后的顺序栈中各元素值。 (3)将顺序栈中的栈顶元素出栈,并输出出栈元素的值和出栈后顺序栈中各元素值。 2. 编程实现队列的如下功能: (1)根据输入的队列长度n和各元素值建立一个循环顺序表表示的队列(循环队列),并输出队列中各元素值。 (2)将数据元素e入队,并输出入队后的队列中各元素值。 (3)将循环队列的队首元素出队,并输出出队元素的值和出队后队列中各元素值。
时间: 2024-02-11 17:05:47 浏览: 68
好的,我会按照您的要求回答您的问题。
1. 栈的实现:
```python
class Stack:
def __init__(self, n):
self.n = n
self.stack = []
def push(self, e):
if len(self.stack) < self.n:
self.stack.append(e)
print("入栈成功,当前栈为:", self.stack)
else:
print("栈已满,无法入栈")
def pop(self):
if len(self.stack) > 0:
e = self.stack.pop()
print("出栈成功,当前栈为:", self.stack)
return e
else:
print("栈已空,无法出栈")
n = int(input("请输入栈的元素个数:"))
stack = Stack(n)
print("请输入栈的各元素值:")
for i in range(n):
e = int(input())
stack.push(e)
e = int(input("请输入要入栈的元素值:"))
stack.push(e)
e = stack.pop()
if e is not None:
print("出栈元素为:", e)
```
2. 队列的实现:
```python
class Queue:
def __init__(self, n):
self.n = n
self.queue = [None] * n
self.front, self.rear = 0, 0
def enqueue(self, e):
if (self.rear + 1) % self.n != self.front:
self.queue[self.rear] = e
self.rear = (self.rear + 1) % self.n
print("入队成功,当前队列为:", self.queue[self.front:self.rear])
else:
print("队列已满,无法入队")
def dequeue(self):
if self.front != self.rear:
e = self.queue[self.front]
self.front = (self.front + 1) % self.n
print("出队成功,当前队列为:", self.queue[self.front:self.rear])
return e
else:
print("队列已空,无法出队")
n = int(input("请输入队列的长度:"))
queue = Queue(n)
print("请输入队列的各元素值:")
for i in range(n):
e = int(input())
queue.enqueue(e)
e = int(input("请输入要入队的元素值:"))
queue.enqueue(e)
e = queue.dequeue()
if e is not None:
print("出队元素为:", e)
```
阅读全文