用python实现ADT stack、
时间: 2023-12-21 20:07:28 浏览: 39
ADT(抽象数据类型)是一种数据类型,它定义了数据对象的行为,而不是其实现细节。在Python中,可以使用类来实现抽象数据类型。
下面是一个ADT stack的Python实现:
```python
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[-1]
def size(self):
return len(self.items)
```
这个Stack类有以下方法:
- `__init__()`: 初始化一个空的栈
- `is_empty()`: 判断栈是否为空
- `push(item)`: 将一个元素压入栈顶
- `pop()`: 弹出栈顶元素
- `peek()`: 返回栈顶元素但不弹出
- `size()`: 返回栈中元素个数
使用方法如下:
```python
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.peek()) # 3
print(stack.pop()) # 3
print(stack.size()) # 2
print(stack.is_empty()) # False
```
这个实现使用了Python内置的列表(list)作为栈的底层实现,因此可以很方便地实现栈的基本操作。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)