编写代码,实现一个栈(Stack)的类。栈是只能在一端插入和删除数据的序列。它 按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据 的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
时间: 2024-03-24 22:36:10 浏览: 113
好的,以下是一个简单的栈类的实现,包括栈的初始化、入栈、出栈和获取栈顶元素的操作:
```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:
return None
def peek(self):
if not self.is_empty():
return self.stack[-1]
else:
return None
def is_empty(self):
return len(self.stack) == 0
```
使用方法如下:
```python
s = Stack()
s.push(1)
s.push(2)
s.push(3)
print(s.peek()) # 输出 3
print(s.pop()) # 输出 3
print(s.pop()) # 输出 2
print(s.pop()) # 输出 1
print(s.pop()) # 输出 None
```
相关问题
编写代码,实现一个栈(Stack)类。栈是只能在一端插入和删除数据的序列,它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据,最后一个数据被第一个读出来
以下是一个使用 Python 实现的栈(Stack)类:
```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)
```
这个栈类包括以下方法:
- `__init__`:初始化一个空列表来存储栈的元素。
- `is_empty`:判断栈是否为空,如果为空则返回 `True`,否则返回 `False`。
- `push`:向栈顶插入一个元素。
- `pop`:从栈顶弹出一个元素,并将其从栈中删除。
- `peek`:返回栈顶的元素,但不删除它。
- `size`:返回栈中元素的数量。
使用示例:
```python
s = Stack()
print(s.is_empty()) # True
s.push(1)
s.push(2)
s.push(3)
print(s.peek()) # 3
print(s.size()) # 3
s.pop()
print(s.peek()) # 2
print(s.size()) # 2
```
编写代码,实现一个栈(Stack)的类。栈是只能在一端插入和删除数据的序列。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)
可以使用 Python 中的列表(list)来实现栈的类。具体实现如下:
```python
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def push(self, item):
self.items.append(item)
def pop(self):
if self.is_empty():
raise IndexError("pop from empty stack")
return self.items.pop()
def peek(self):
if self.is_empty():
raise IndexError("peek from empty stack")
return self.items[-1]
def size(self):
return len(self.items)
```
在上面的代码中,我们定义了一个 Stack 类,它包含以下方法:
- `__init__()`: 初始化一个空列表作为栈的存储空间。
- `is_empty()`: 判断栈是否为空,如果栈为空则返回 True,否则返回 False。
- `push(item)`: 将元素 item 压入栈顶。
- `pop()`: 弹出并返回栈顶元素,如果栈为空则抛出 IndexError 异常。
- `peek()`: 返回栈顶元素,但不弹出元素,如果栈为空则抛出 IndexError 异常。
- `size()`: 返回栈中元素的数量。
使用示例:
```python
s = Stack()
print(s.is_empty()) # True
s.push(1)
s.push(2)
s.push(3)
print(s.size()) # 3
print(s.peek()) # 3
print(s.pop()) # 3
print(s.size()) # 2
```
上面的代码创建了一个空栈 s,并向其中压入了元素 1、2、3。然后分别调用了 size()、peek()、pop() 方法,最终输出了栈中元素的数量和弹出的元素。
阅读全文
相关推荐
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)