- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教学课件课件PPT医学培训课件教育资源教材讲义
第3章 限定性线性表—栈和队列;栈和队列是两种常用的数据类型;3.1 栈;3.1.1 栈的定义:;InitStack(S) 初始化一个空栈 S。;二、进栈、出栈图例;3.1.2 栈的表示和实现;一、顺序栈;2、顺序栈中的进栈和出栈图例;3. 顺序栈的基本操作特点;4)进栈;5)出栈;6) 取栈顶元素;〖例〗设有一个空栈,栈顶指针为1000H,现有输入序列为12345,PUSH , PUSH , POP , PUSH , POP , PUSH , PUSH后,输出序列为______,栈顶指针为_______ ;〖例〗在一个n个单元的顺序栈中,假定以地址高端(下标为n-1的单元)作为栈底,则向栈中压入一个元素时,栈顶指针top的变化是______
top 不变 top=n top=top-1 top=top+1;〖例〗若一个栈的输入序列是1,2,…,n,输出序列的第一个元素是n,则第i个输出元素是______
n-i n-i+1 i n-i-1;方法一:将栈的容量加到足够大,但这种方法由于事先难以估计容量,有可能浪费空间。; 利用栈“栈底位置不变,而栈顶位置动态变化”的特性,为两个栈申请一个共享的一维数组空间S[M],将两个栈的栈底分别放在一维数组的两端,分别是0,M-1。 ;6、两栈共享的数据结构定义;7、两栈共享基本操作的实现;2) 两栈共享的进栈操作算法;3) 两栈共享的出栈操作算法;〖例〗设有一个输入序列123,元素经过一个栈到达输出序列,并且元素一旦离开输入序列就不能再回到输入序列,试问经过这个栈后可以得到多少种输出序列?
分析:每一元素只能做一次入栈、一次出栈,可以入栈后停留一段时间,然后到达输出序列。那么该题就变为如何安排三次push操作(s)和pop操作(x)的顺序以得到尽量多的不同的输出。
sssxxx: 321 ssxsxx: 231 ssxxsx:213
sxsxsx: 123 sxssxx:132;补充:
如果进栈的序列为123456,能否得到435612和
135426的出栈序列,并说明为什么不能得到或
者如何得到(写出以‘S’表示进栈, ‘x’表示出栈
的栈操作序列) ;二、 链栈;链栈的基本操作特点;1、链栈的存储结构定义;2、链栈基本操作的实现;2)链栈的出栈操作;3.1.3 栈的应用举例;分析可能出现的不匹配的情况:;算法的设计思想:;括号匹配算法:;例2、 数制转换;十进制转换为二进制(例如:25)
有 余 数 是 1 没 余 数 是0
25除2=12......1
12除2=6 ...... 0
6 除2=3 ...... 0
3 除2=1 ...... 1
1 除2=0 ...... 1
然后我们将余数按“从下往上”的顺序书写就是:11001,那么这个11001就是十进制25的二进制形式 ;数制转换算法
void Conversion(int N)
/*对任意非负十进制数N,打印等值的八进制数*/
{ Stack S; int x; /*S为顺序栈或链栈*/
InitStack(S);
while(N0)
{ x=N%8; Push(S, x); N=N/8; }
while(!IsEmpty(S))
{ Pop(S,x); printf(“%d”,x); }
};3.1.4 栈与递归的实现; 从被调用函数返回调用函数之前, 应该完成下列三项任务:;多个函数嵌套调用的规则是:;递归工作栈:递归函数执行过程中占用的数据区
工 作 记 录: 每一层的参数、局部变量、返回地
址等构成的记录(数据区)
当前活动记录:栈顶工作记录(当前函数数据区)
当前环境指针:递归工作栈的栈顶指针,指向当前
活动记录。(指示当前函数数据区);例Hanoi塔问题:有3个塔座x, y, z, 在塔座x上插有n个大小不同的圆盘, 从小到大且自上而下编号为1,2,…n; 按规则将它们一个个搬到塔座z上, y可用作辅助塔座。
规则为:
(1) 每次只能移动一个圆盘;
(2) 圆盘可放在任意塔座上;
(3)任何时刻塔座上都不得将大盘压在小盘之上。;void hanoi (int n; char x, char y,char z)
/* 将塔座x上按直径由小到大且至上而下编号为1至n的
n个圆盘按规则搬到塔座z上,y可用作辅助塔座。*/
1 {
2 IF (
您可能关注的文档
- 蔬菜详细规格教学幻灯片.ppt
- 蔬菜学+二教学幻灯片.ppt
- 蔬菜腌制品加工技术教学幻灯片.ppt
- 蔬菜腌渍第六章教学幻灯片.ppt
- 蔬菜也有想象力教学幻灯片.pptx
- 蔬菜-叶菜类教学幻灯片.ppt
- 蔬菜营养特性与施肥技术教学幻灯片.ppt
- 蔬菜与健康教学幻灯片.ppt
- 蔬菜育苗场规划设计教学幻灯片.ppt
- 蔬菜育苗技术_姜冬磊教学幻灯片.ppt
- 职业技术学院2024级工业机器人技术(安装与维护)专业人才培养方案.docx
- 职业技术学院2024级应用化工技术专业人才培养方案.pdf
- 职业技术学院2024级软件技术(前端开发)专业人才培养方案.pdf
- 职业技术学院2024软件技术专业人才培养方案.docx
- 职业技术学院2024级信息安全技术应用(安全运维)专业人才培养方案.docx
- 职业技术学院2024级新能源汽车检测与维修技术(车辆鉴定与评估)专业人才培养方案.pdf
- 职业技术学院2024级石油炼制技术专业人才培养方案.pdf
- 职业技术学院2024级环境监测技术专业人才培养方案.docx
- 职业技术学院2024级汽车制造与试验技术专业人才培养方案.pdf
- 职业技术学院2024级信息安全技术应用专业人才培养方案.pdf
文档评论(0)