您所在位置:网站首页 > 海量文档
 > 高等教育 > 专业基础教材
试用C语言编写一个高效算法,将一循环单链表就地逆置.ppt24页
本文档一共被下载:次,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
第三章 栈和队列 3.1 栈(Stack) 3.2 队列(Queue) Q4:为什么要设计堆栈?它有什么独特用途? 例2(严题集3.1)一个栈的输入序列为1,2,3,若在入栈的过程中允许出栈,则可能得到的出栈序列是什么? 例3:一个栈的输入序列是12345,若在入栈的过程中允许出栈,则栈的输出序列43512可能实现吗?12345的输出呢? 例4: 设依次进入一个栈的元素序列为c,a,b,d,则可得到出栈的元素序列是: A)a,b,c,d B)c,d,a,b C)b,c,d,a D)a,c,d,b 顺序栈的入栈操作——例如用堆栈存放(A,B,C,D) 顺序栈出栈操作——例如从栈中取出‘B’ 链栈的入栈操作和出栈操作(教材省略教师补充) 栈的应用举例 表达式求值过程----机内运算示意图 1.汤新宜(2002级通信5班) 2.邓新荣(2002级通信3班) * * 交第2章作业( 2.8 2.10 2.21 2.22 2.34 2.35); 周四下午/ 晚上第1次上机;请各班负责人到机房上机时卡;上机内容:线性表的插入与删除 基本要求:试用C语言编写一个高效算法,将一循环单链表就地逆置。 高级要求:请用循环链表方式制作一种彩票选号器。 1. 定义 2. 逻辑结构 3. 存储结构 4. 运算规则 5. 实现方式 1. 定义 2. 逻辑结构 3. 存储结构 4. 运算规则 5. 实现方式 调用函数或子程序非它莫属; 递归运算的有力工具; 用于保护现场和恢复现场; 简化了程序设计的问题。 下面用4个例子来帮助理解堆栈: void test(int &sum){ int x; scanf(x); if(x==0)sum=0; else{test(sum);sum+=x;} printf(sum); } 断点地址入栈 例1(严题集3.10③)阅读下列递归过程,说明其功能。 输入x1≠0 输入x5=0 输入x2 输入x3 输入x4 输出sum=0 输出sum=0+x4 输出sum=x4+x3 输出sum= x4+x3 +x2 输出sum= x4+x3 +x2+x1 注意:最先输入的数据 x1 最后才被累加 程序功能:对键盘输入数据求和,直到输入0结束 答: 可以通过穷举所有可能性来求解: ① 1入1出, 2入2出,3入3出, 即123; ② 1入1出, 2、3入,3、2出, 即132; ③ 1、2入,2出, 3入3出, 即231; ④ 1、2入,2、1出,3入3出, 即213; ⑤ 1、2、3入,3、2、1出, 即321; 合计有5种可能性。 答: 43512不可能实现,主要是其中的12顺序不能实现; 12345的输出可以实现,每压入一数便立即弹出即可。 A)、D)可以, B)、C)不行。 讨论:有无通用的判别原则? 有!若输入序列是 …,Pj…Pk…Pi …(PjM){上溢} else s[top++]=e; } Push (B); Push (C); Push (D); top
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名:
验证码:
匿名?
发表评论