当前位置: 首页 > news >正文

python数据结构基础(5)

本章学习的是栈.它最突出的特点是后进先出,与队列恰好相反,但其在实现过程中与队列异曲同工.

栈的基本结构:

栈是按照有序的后进先出规则运行的一种结构,其插入和删除操作均在栈项进行这一点区别于队列的队尾进队,队头出队.

栈一般包括入栈和出栈操作,且有一个顶指针(top)用于指示栈项位置.

栈的实现:

使用python实现栈,包括如下几种方法.

__init__():初始化方法,用于创建一个空栈

__len__():返回栈的长度

isempty():返回栈是否为空

push():向栈压入一个元素.

gettop():获取栈顶元素

pop():执行一次出栈操作,返回弹出的元素值

示例代码如下:

class Stack:def __init__(self):# 创建空栈# 初始化一个空列表来存储栈中的元素self.data = []def __len__(self):# 返回栈中元素的数量# 这是内置的len函数的自定义实现,允许使用len(stack)来获取栈的大小return len(self.data)def isempty(self):# 检查栈是否为空# 如果栈中没有元素,返回True,否则返回Falsereturn len(self.data) == 0def push(self, d):# 向栈中添加一个元素# 将元素d添加到列表的末尾,这模拟了栈的入栈操作self.data.append(d)def gettop(self):# 获取栈顶元素# 如果栈为空,返回提示信息'Stack is empty'# 否则返回列表的最后一个元素,即栈顶元素if self.isempty():return 'Stack is empty'return self.data[-1]def pop(self):# 移除栈顶元素并返回它# 如果栈为空,返回提示信息'Stack is empty'# 否则移除并返回列表的最后一个元素,即栈顶元素if self.isempty():return 'Stack is empty'return self.data.pop()


http://www.mrgr.cn/news/67013.html

相关文章:

  • 机器学习3_支持向量机_线性不可分——MOOC
  • 制作一个3D建模只需10秒:腾讯发布3D开源模型“混元3D”
  • LeetCode 每日一题 2024/10/28-2024/11/3
  • 基于STM32单片机太阳能充电循迹避障小车
  • 冒泡排序、选择排序、计数排序、插入排序、快速排序、堆排序、归并排序JAVA实现
  • 【每日 C/C++ 问题】
  • Ansys Zemax | 将CODE V设计导入OpticStudio
  • 【高中生讲机器学习】23. 最大熵模型详解+推导来啦!解决 why sigmoid!
  • 增强型MOS管的工作原理:【图文讲解】
  • sls日志服务采集json格式日志
  • mysql的触发器
  • 文件操作:Xml转Excel
  • es自动补全(仅供自己参考)
  • ASRPRO 日历2
  • Python 装饰器 (面向切面编程,语法糖,AOP)
  • PySpark 本地开发环境搭建与实践
  • 对自动化测试的一些展望与理解
  • Linux(CentOS)安装 MySQL
  • 伊莱亚斯 M. 斯坦恩(Elias M. Stein)《复分析》与《实分析》教材
  • APP 后台广告位配置的关键要素与策略
  • 浏览器是如何渲染页面的? - 2024最新版前端秋招面试短期突击面试题
  • 编程语言越来越多,为什么C/C++还没有被现在的时代淘汰呢?
  • 智合同丨买卖合同纠纷中,起诉关联公司需要准备些什么?
  • JVM 内存结构中哪些区域可能发生 OOM
  • 红队-linux基础(1)
  • linux利用环境变量提权以及如何防范