python中的堆栈
栈
栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。
由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 。。
4、文字常量区—常量字符串就是放在这里的。 程序结束后由系统释放。
5、程序代码区—存放函数体的二进制代码。
不懂可以参考下面的文献
堆和栈的区别
什么是堆和栈,它们在哪儿?–堆栈
栈结构实现
栈可以用顺序表实现,也可以用链表实现。
栈的操作
- Stack() 创建一个新的空栈
- push(item) 添加一个新的元素item到栈顶
- pop() 弹出栈顶元素
- peek() 返回栈顶元素
- is_empty() 判断栈是否为空
- size() 返回栈的元素个数
用程序实现的如下
class Stack(object):"""栈"""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[len(self.items)-1]def size(self):"""返回栈的大小"""return len(self.items)
if __name__ == "__main__":stack = Stack()stack.push("hello")stack.push("world")stack.push("itcast")print stack.size()print stack.peek()print stack.pop()print stack.pop()print stack.pop()
如何有任何问题,可以关注我的微信公众号:乐享python编程,我们可以一起沟通交流学习成长!!!
python中的堆栈相关推荐
- python 中的堆栈 用列表实现
利用python中列表的方法实现数据结构中堆栈的"后进先出"的性质 列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出) ...
- python堆栈跟踪_什么是python中的堆栈跟踪?
堆栈回溯显示程序运行中某个点的调用堆栈的状态.实际上,当程序中发生错误时,您通常会遇到这些问题. 所述调用栈是栈帧的堆叠(或列表).每个堆栈帧对应于子进程的调用(在Python中,函数或[list] ...
- 万能的list列表,python中的堆栈、队列实现全靠它
在python编程中很多的数据计算都需要依靠列表来实现,比如Java编程中的堆栈结构/队列结构也可以通过list列表实现的. [阅读全文] 1.将列表当做堆栈来使用 堆栈数据结构实现的思想就是:'先进 ...
- python元祖迭代_如何在Python中迭代元组的堆栈
我尝试在Python中使用预定义为的DepthFirstSearch类实现DepthFirstSearch算法:class Stack: def __init__(self): self.list = ...
- python中pop函数_Python中的Pop函数
python中pop函数 什么是弹出功能? (What is the pop function?) The method pop() removes and returns the last elem ...
- Python中的数据结构
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:磐创AI 概述 在深入研究数据科学和模型构建之前,Pyt ...
- 如何在Python中反转列表?
如何在Python中执行以下操作? array = [0, 10, 20, 40] for (i = array.length() - 1; i >= 0; i--) 我需要一个数组的元素,但是 ...
- python中关于list列表的增删查改操作
python中list的操#python创建列表的时候,会以堆栈的形式存放数据,从右向左往堆栈中存放数据 movies=["The holy Grail","The li ...
- python中迭代器的实现原理_Python 进阶应用教程
Python 中的迭代器实现原理 在数学中,集合表示由一个或多个确定的元素所构成的整体.在 Python 中,列表.元组.集合可以用于表示数学中的集合. 例如,分别使用列表.元组.集合表示了一个包含 ...
最新文章
- vue实现多个元素或多个组件之间动画效果
- 魔改Attention大集合
- jsonp跨域实现单点登录,跨域传递用户信息以及保存cookie注意事项
- 清华大学微纳脑机接口与机器人实验室:生物材料研发工程师招聘
- iPhone开源项目汇总(更新版)
- Concurrent集合 Atomic类
- Remarkable启动遇到Spellchecking not enabled(没有解决)
- matlab怎让3d旋转,如何在MATLAB中平滑旋转3D绘图?
- 【机器学习】交叉验证筛选参数K值和weight
- java编程中的持有对方引用是什么意思?有什么作用?
- 揭秘ASP.NET 2.0之Page.Eval
- 【动手学深度学习】代码(持续更新)
- FreeTextBox3.1.6使用说明(整理)
- getting start with storm 翻译 第六章 part-4
- SpringBoot+Element-UI实现加载ActiveX控件
- 区块链开发以太坊ETH单位转换关系
- html在线随机出题系统,出题系统/考试模拟考试系统-在线系统
- 麻雀的叫声matlab文件,诱捕麻雀叫声mp3下载|
- wuauclt1.exe mshta.exe 病毒清理
- 全国高中数学联赛——代数
热门文章
- java 圆弧_从圆弧区域中寻找中心角
- 拼车小程序的盈利模式探究,以及快速有效的推广方法!【小程序创业干货】
- The rate shock 利率冲击 | 经济学人中英双语精读笔记
- 2019--3.10学习笔记
- 阿兰·麦席森·图灵(Alan Mathison Turing,1912.6.23—1954.6.7)
- Linux学习 邮件
- .NET实现工资管理系统
- 70道android面试题汇总
- 从苏宁电器到卡巴斯基第23篇:单证这一年(上)
- jenkins 安装 SVN Publisher 后向 svn 提交代码报错: E170001: Authentication required for...