1.根据输入的栈中元素个数n和各元素值建立一个顺序栈,并输出栈中各元素值。 2.将数据元素e入栈,并输出入栈后的顺序栈中各元素值。 3.将顺序栈中的栈顶元素出栈,并输出出栈元素的值和出栈后顺序栈中各元素值。
时间: 2024-02-03 10:13:10 浏览: 107
顺序栈、链栈将10进制转为2、8、16进制源码
5星 · 资源好评率100%
好的,这是一个栈的基本操作。以下是对应的Python代码实现:
```python
# 定义一个栈类
class Stack:
def __init__(self, n):
self.maxsize = n # 栈的最大容量
self.stack = [] # 存储栈中元素的列表
# 判断栈是否为空
def is_empty(self):
return len(self.stack) == 0
# 判断栈是否已满
def is_full(self):
return len(self.stack) == self.maxsize
# 入栈操作
def push(self, e):
if self.is_full():
print("Stack Overflow: cannot push element", e)
else:
self.stack.append(e)
print("push element", e, "into the stack:", self.stack)
# 出栈操作
def pop(self):
if self.is_empty():
print("Stack Underflow: cannot pop element")
else:
e = self.stack.pop()
print("pop element", e, "from the stack:", self.stack)
# 测试栈的基本操作
if __name__ == '__main__':
s = Stack(5) # 栈的容量为5
# 建立一个顺序栈
for i in range(1, 6):
s.push(i)
# 入栈操作
s.push(6)
# 出栈操作
s.pop()
```
运行结果如下:
```
push element 1 into the stack: [1]
push element 2 into the stack: [1, 2]
push element 3 into the stack: [1, 2, 3]
push element 4 into the stack: [1, 2, 3, 4]
push element 5 into the stack: [1, 2, 3, 4, 5]
Stack Overflow: cannot push element 6
pop element 5 from the stack: [1, 2, 3, 4]
```
以上代码中,我们首先定义了一个栈类,包含栈的最大容量、存储栈中元素的列表以及栈的基本操作,如判断栈是否为空、判断栈是否已满、入栈操作和出栈操作。
接下来,我们进行测试。首先,我们使用 `for` 循环建立一个顺序栈,并输出栈中各元素值。随后,我们进行入栈操作,将元素6加入到栈中。由于栈已满,所以会输出提示信息 `Stack Overflow: cannot push element 6`。最后,我们进行出栈操作,将栈顶元素5弹出,并输出出栈元素的值和出栈后顺序栈中各元素值。
阅读全文