用Python写一个堆栈
时间: 2023-05-26 10:06:18 浏览: 68
堆栈(Stack)是一种后进先出(LIFO)的数据结构,可以使用Python列表(List)来作为堆栈的存储容器。
以下是利用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)
# 示例
s = Stack()
s.push(1)
s.push(2)
s.push(3)
print(s.pop())
print(s.peek())
print(s.size())
print(s.is_empty())
# 输出
# 3
# 2
# 2
# False
相关问题
python 写一个递归
当然!递归是一种在函数内部调用自身的编程技巧。下面是一个使用递归实现的简单示例,计算一个数的阶乘:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
# 测试
num = 5
result = factorial(num)
print(f"{num}的阶乘为:{result}")
```
在上述示例中,`factorial` 函数通过递归调用自身来计算给定数 `n` 的阶乘。当 `n` 等于 0 时,递归终止,返回 1。否则,函数将 `n` 乘以 `factorial(n - 1)` 的结果,并继续递归调用直到 `n` 达到 0。
请注意,递归函数需要设置终止条件,否则会导致无限递归,最终导致堆栈溢出。在编写递归函数时,请确保存在适当的终止条件。
用Python写一个堆栈类,要求1.具有自己的属性和方法,属性为私有属性data,size等,方法包括:_int_();pop ();push()等2.调用堆栈类生成一个存储空间为20的对象3.从外边输入一句话,依次压栈和出栈,显示最后的结果
# 定义堆栈类
class Stack:
def __init__(self):
self.__data = []
self.__size = 0
def pop(self):
if self.__size == 0:
return None
self.__size -= 1
return self.__data.pop()
def push(self, value):
if self.__size >= 20:
return None
self.__data.append(value)
self.__size += 1
# 创建一个存储空间为20的堆栈对象
my_stack = Stack()
# 输入一句话
sentence = input("请输入一句话:")
# 依次压栈和出栈
for c in sentence:
my_stack.push(c)
my_stack.pop()
# 显示最后的结果
print("最后的结果为:", end="")
while True:
c = my_stack.pop()
if c is None:
break
print(c, end="")
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)