stack类模拟实现
时间: 2024-09-23 15:00:39 浏览: 1
Stack(栈)是一种线性的数据结构,它遵循“后进先出”(LIFO,Last In First Out)的原则,意味着最后放入的元素最先被取出。在模拟实现Stack类时,通常会包含以下几个基本操作:
1. **push()**: 向栈顶添加一个元素。
2. **pop()**: 删除并返回栈顶元素,如果栈为空则抛出异常。
3. **peek()**: 返回栈顶元素但不删除,用于查看顶部元素但不改变栈的状态。
4. **isEmpty()**: 检查栈是否为空,若为空则返回true,否则返回false。
5. **size()**: 获取栈中元素的数量。
这是一个简单的Python实现示例:
```python
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return not bool(self.items)
def push(self, item):
self.items.append(item)
def pop(self):
if not self.is_empty():
return self.items.pop()
else:
raise IndexError("Popping from an empty stack")
def peek(self):
if not self.is_empty():
return self.items[-1]
else:
raise IndexError("Peeking at an empty stack")
def size(self):
return len(self.items)
```
在这个实现中,`items`列表就充当了栈的数据存储容器。