一. 简介
前面一篇文章简朴学习了 列表实现栈操作,文章如下:
python3中列表的应用:实现栈操作-CSDN博客
本文继续学习列表实现栈操作,主要通过一个实例来说明。
二. python3 中列表实现栈操作:实例
栈是一种 "后进先出"(或 "先辈后出") 的数据布局,意味着最后添加的元素最先被移除。而 列表提供了一些方法,使其比较适适用于栈操作。所以,可以使用列表(list)来实现栈的功能,例如,压栈(push)、弹栈(pop)和查看栈顶元素(peek)等。
下面通过实现一个类,来说明列表如何实现栈操作。
- #!/usr/bin/env python3
- class my_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 not self.is_empty():
- return self.items.pop()
- else:
- return None
- #查看栈顶元素
- def peek(self):
- if not self.is_empty():
- return self.items[-1]
- else:
- return None
- #获取栈的大小
- def size(self):
- return len(self.items)
- #返回栈的字符串表示
- def __str__(self):
- return str(self.items)
-
- #测试栈操作
- stack1 = my_stack()
- stack1.push("apple")
- stack1.push("strawberry")
- stack1.push("banana")
- stack1.push("orange")
- print(stack1)
- print(f"Top element: {stack1.peek()}")
- print(f"Popped element: {stack1.pop()}")
- print(f"Is the stack empty ? {stack1.is_empty()}")
- print(f"stack size: {stack1.size()}")
- print(f"string of stack: {stack1.__str__()}")
复制代码 输出如下:
- ['apple', 'strawberry', 'banana', 'orange']
- Top element: orange
- Popped element: orange
- Is the stack empty ? False
- stack size: 3
- string of stack: ['apple', 'strawberry', 'banana']
复制代码 可以看出,上面的示例,通过列表实现了栈的根本操作。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |