编写一个程序sqstack.py,实现顺序栈(假设栈中的元素类型为char)的各种基本运算
时间: 2024-10-07 22:02:12 浏览: 34
编写一个名为 `sqstack.py` 的程序,用于实现顺序栈(也称为简单数组栈),其中包含基本的栈操作,如入栈(push)、出栈(pop)、查看顶部元素(top)、判断栈是否为空(is_empty)以及获取栈的大小(get_size)。以下是这个程序的基本结构:
```python
class Stack:
def __init__(self):
self.stack = []
# 入栈操作
def push(self, item):
self.stack.append(item)
# 出栈操作,返回并移除栈顶元素
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
raise Exception("Stack is empty")
# 查看栈顶元素,不删除
def top(self):
if not self.is_empty():
return self.stack[-1]
else:
raise Exception("Stack is empty")
# 判断栈是否为空
def is_empty(self):
return len(self.stack) == 0
# 获取栈的大小(元素个数)
def get_size(self):
return len(self.stack)
# 示例使用
if __name__ == "__main__":
my_stack = Stack()
my_stack.push('a')
my_stack.push('b')
print(my_stack.top()) # 输出 'b'
print(my_stack.get_size()) # 输出 2
my_stack.pop()
print(my_stack.get_size()) # 输出 1
try:
my_stack.pop() # 异常:Stack is empty
except Exception as e:
print(e)
```
在这个程序中,我们创建了一个名为 `Stack` 的类,包含了所有必要的栈操作。在主程序部分展示了如何实例化这个栈并进行操作。
阅读全文