题目一:编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能: (1) 初始化栈S。 (2) 判断栈S是否非空。 (3) 依次进栈元素a,b,c,d,e。 (4) 输出栈的长度。 (5) 输出从栈顶到栈底的元素。 (6) 释放栈。
时间: 2024-05-02 13:17:28 浏览: 107
实现顺序表的基本运算:初始化、插入、删除、求表的长度、判空、释放。
5星 · 资源好评率100%
下面是实现顺序栈的基本运算的代码:
```python
class SequenceStack:
def __init__(self, max_size):
self.max_size = max_size
self.stack = [None] * self.max_size
self.top = -1
def is_empty(self):
return self.top == -1
def is_full(self):
return self.top == self.max_size - 1
def push(self, element):
if self.is_full():
print('Stack is full')
else:
self.top += 1
self.stack[self.top] = element
def pop(self):
if self.is_empty():
print('Stack is empty')
else:
element = self.stack[self.top]
self.top -= 1
return element
def peek(self):
if self.is_empty():
print('Stack is empty')
else:
return self.stack[self.top]
def size(self):
return self.top + 1
def clear(self):
self.top = -1
```
然后,我们可以使用这个实现顺序栈的类,来完成题目中要求的主程序:
```python
# 初始化栈S
S = SequenceStack(5)
# 判断栈S是否非空
print('Is S empty?', S.is_empty())
# 依次进栈元素a,b,c,d,e
S.push('a')
S.push('b')
S.push('c')
S.push('d')
S.push('e')
# 输出栈的长度
print('Stack size:', S.size())
# 输出从栈顶到栈底的元素
print('Stack elements:')
while not S.is_empty():
print(S.pop())
# 释放栈
S.clear()
```
运行结果如下:
```
Is S empty? True
Stack size: 5
Stack elements:
e
d
c
b
a
```
这个程序实现了顺序栈的各种基本运算,并且使用这个实现顺序栈的类来完成了题目中的要求。
阅读全文