- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]数据结构严蔚敏著 第三章-栈和队列.ppt
* ADT Queue的表示与实现:操作的实现 Status Destroyqueue(LinkQueue Q) { //队列Q存在则销毁Q while(Q.front){ Q.rear=Q.front-next; free(Q.front); Q.front=Q.rear; //NULL } return OK;} 3.4.2 链队列-队列的链式表示和实现 3.4 队列 * 3.4.2 链队列-队列的链式表示和实现 队列运算指针变化情况 ^ Q.front Q.rear Q.front Q.rear ^ x Q.front Q.rear x ^ y Q.front Q.rear x ^ y (a) 空队列 (b) 元素x入队 (c) 元素y入队 (d) 元素x出队 3.4 队列 * ????? 由于栈结构具有的后进先出的固有特性,致使栈成为程序设计中常用的工具。 例:十进制数N和其它d进制数的转换是计算机计算的基本问题。对于输入的任意一个非负十进制数,显示输出与其等值的八进制数,其解决方法很多,其中一个简单算法基于下列原理: 3.2.1 数制转换 P48 3.2 栈的应用举例 * 原理:N=(N div d)*d+ N mod d ( 其中:div为整除运算, mod为求余运算,d为预转换数制)。例如 (1348)10=(2504)8,其运算过程如下: N 1348 168 21 2 N div 8 168 21 2 0 N mod 8 4 0 5 2 显示时按从高位到低位的 顺序输出 3.2 栈的应用举例 3.2.1 数制转换原理 计算时从低位到高位 顺序产生八进制数的各个数位 * void conversion( ) { InitStack(s); //建空栈,s为栈顶指针变量 scanf(“%d”,x); //输入一个非负十进制整数 while(x!=0) { // x不等于零循环 push(s, x% 8); // x/8第一个余数进栈 x=x/8; //整除运算,结果返回给X } while(! StackEmpty(s) ) //输出存放在栈中的八制数位 {x=pop(s); printf(“%d”,x); } } 3.2 栈的应用举例 3.2.1 数制转换 * 3.2.3 行编辑程序 P49 一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。允许用户输入出错时可以及时更正。可以约定#为退格符,以表示前一个字符无效,@为退行符,表示当前行所有字符均无效。 例:在终端上用户输入为 whli##ilr#e(s#*s) 应为 while(*s) 3.2 栈的应用举例 * 3.2.3 行编辑程序 行编辑程序算法如下: void lineedit( ){//利用字符栈S,从终端接收一行并传送至调用过程的数据区。 initstack(s); ch=gethar( ); //从终端接收第一个字符 while(ch!=eof){//EOF为全文结束符 while(ch!=eof ch!=‘ \n’){ // “\n”为回车符 switch(ch){ case ‘#’ : pop(s,ch); // 仅当栈非空时退栈 case ‘@’ : clearstack(s); // 重置S为空栈 3.2 栈的应用举例 * 3.2.3 行编辑程序 default : push(s,ch); } // 有效字符进栈,未考虑栈满情形 ch=getchar( ); // 从终端接收下一个字符 }// (程序段略…)将从栈底到栈顶的字符传送至调用过程的数据区; clearstack(s); // 重置S为空栈
您可能关注的文档
最近下载
- Unit 1 Section A(1a-1d)同步课件-初中英语人教版(2024)七年级下册.pptx VIP
- 燃油泵控制电路.ppt
- 研究生学术规范与学术诚信(南京大)中国大学MOOC慕课 客观题答案.pdf VIP
- 中国二型糖尿病防治指南要点解读.pptx VIP
- 合成生物学-全套PPT课件.pptx
- 94G316(n形钢筋混凝土天窗架).pdf VIP
- 2025至2030年中国甜菜行业市场调查研究及投资前景预测报告.docx
- Unit1AnimalfriendsSectionA1a-1d课件人教版(2024)初中英语七年级下册.pptx VIP
- 冷库的安全操作规程培训课件.pptx VIP
- 中国型糖尿病防治指南解读.ppt VIP
文档评论(0)