使用顺序表实现栈。具体要求为:补充完整 SqStack 类中的 is_empty()、push()、pop() 、get_top()和 __len__() 五个方法,分别实现判断栈是否为空、入栈、出栈、获取栈顶元素和统计栈的项目数五个功能。
时间: 2024-09-30 22:09:42 浏览: 28
在Python中,我们可以创建一个名为SqStack的线性数据结构,即顺序栈(Sequential Stack),使用列表作为底层存储。以下是这个类的实现:
```python
class SqStack:
def __init__(self):
self._data = []
# 判断栈是否为空
def is_empty(self):
return len(self._data) == 0
# 入栈:添加元素到栈顶
def push(self, item):
self._data.append(item)
# 出栈:移除并返回栈顶元素
def pop(self):
if not self.is_empty():
return self._data.pop()
else:
raise IndexError("Pop from empty stack")
# 获取栈顶元素,但不删除它
def get_top(self):
if not self.is_empty():
return self._data[-1]
else:
raise IndexError("Top of empty stack")
# 统计栈的项目数,即计算长度
def __len__(self):
return len(self._data)
# 示例
stack = SqStack()
stack.push(1)
stack.push(2)
print(stack.get_top()) # 输出:2
print(stack.is_empty()) # 输出:False
print(len(stack)) # 输出:2
stack.pop()
print(stack.pop()) # 这里会抛出异常,因为栈已经空了
```
阅读全文