python3中列表实现栈操作:实例

打印 上一主题 下一主题

主题 826|帖子 826|积分 2478

一.  简介

前面一篇文章简朴学习了 列表实现栈操作,文章如下:
python3中列表的应用:实现栈操作-CSDN博客
本文继续学习列表实现栈操作,主要通过一个实例来说明。


二. python3 中列表实现栈操作:实例

栈是一种 "后进先出"(或 "先辈后出") 的数据布局,意味着最后添加的元素最先被移除。而 列表提供了一些方法,使其比较适适用于栈操作。所以,可以使用列表(list)来实现栈的功能,例如,压栈(push)、弹栈(pop)和查看栈顶元素(peek)等。
下面通过实现一个类,来说明列表如何实现栈操作。
  1. #!/usr/bin/env python3
  2. class my_stack:
  3.     def __init__(self):
  4.         #创建一个空列表
  5.         self.items = []
  6.     #判断栈是否为空
  7.     def is_empty(self):
  8.         return len(self.items) == 0
  9.     #压入栈
  10.     def push(self, item):
  11.         self.items.append(item)
  12.     #弹出栈
  13.     def pop(self):
  14.         if not self.is_empty():
  15.             return self.items.pop()
  16.         else:
  17.             return None
  18.     #查看栈顶元素
  19.     def peek(self):
  20.         if not self.is_empty():
  21.             return self.items[-1]
  22.         else:
  23.             return None
  24.     #获取栈的大小
  25.     def size(self):
  26.         return len(self.items)
  27.     #返回栈的字符串表示
  28.     def __str__(self):
  29.         return str(self.items)
  30.    
  31. #测试栈操作
  32. stack1 = my_stack()
  33. stack1.push("apple")
  34. stack1.push("strawberry")
  35. stack1.push("banana")
  36. stack1.push("orange")
  37. print(stack1)
  38. print(f"Top element: {stack1.peek()}")
  39. print(f"Popped element: {stack1.pop()}")
  40. print(f"Is the stack empty ?  {stack1.is_empty()}")
  41. print(f"stack size: {stack1.size()}")
  42. print(f"string of stack: {stack1.__str__()}")
复制代码
输出如下:
  1. ['apple', 'strawberry', 'banana', 'orange']
  2. Top element: orange
  3. Popped element: orange
  4. Is the stack empty ?  False
  5. stack size: 3
  6. string of stack: ['apple', 'strawberry', 'banana']
复制代码
可以看出,上面的示例,通过列表实现了栈的根本操作。








免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

海哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表