python4. 自定义数据结构栈。栈是一种后进先出(Last-In-First-Out)的数据结构。编写类 Stack,实现入栈、出栈、判断栈是否为空,是否满栈、以及改变栈容量等操作。
时间: 2023-11-27 09:53:15 浏览: 24
好的,以下是一个简单的 Python 实现:
```python
class Stack:
def __init__(self, capacity):
self.capacity = capacity
self.stack = []
def push(self, val):
if self.is_full():
raise Exception("Full stack")
self.stack.append(val)
def pop(self):
if self.is_empty():
raise Exception("Empty stack")
return self.stack.pop()
def is_empty(self):
return len(self.stack) == 0
def is_full(self):
return len(self.stack) == self.capacity
def resize(self, new_capacity):
if new_capacity < self.capacity:
self.stack = self.stack[:new_capacity]
elif new_capacity > self.capacity:
self.stack += [None] * (new_capacity - self.capacity)
self.capacity = new_capacity
```
这个 Stack 类有一个 capacity 属性,表示栈的容量。在初始化时,我们创建一个空的列表 stack。push 方法将一个元素添加到列表的末尾,pop 方法将列表末尾的元素弹出并返回。is_empty 和 is_full 方法分别检查栈是否为空或已满。resize 方法可以调整栈的容量。如果新的容量比原来的小,我们只需要将栈的长度截断。如果新的容量比原来的大,我们可以将 None 添加到栈的末尾,直到达到新的容量。