- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课件(c语言)1
3.1.2 栈的基本操作 (1)InitStack(*S):初始化操作,创建一个空栈S返回。 (2) StackEmpty(*S) :判断栈S是否为空,若S为空栈返回为1,否则返回为0。 (3)Clear Stack(*S): 清空栈S。 (4)LenStack(*S): 求栈S中数据元素的个数,即栈S的长度。 (5)Push (*S,item) :在栈S的顶部插入一个新元素item,item成为新的栈顶元素,栈中增加一个元素。 (6)Pop(*S) :栈S的顶部元素从栈中删除,栈中减少一个元素。 (7)GetTop(*S) :获取栈顶元素的值,且将其作为结果返回,栈不变化。 可以不用头结点 typedef struct stacknode { elemtype data; stacknode * next; }LinkStack; 直接定义LinkStack *top; 初始化top = NULL; 栈的典型应用 1.数制转换 2.迷宫求解 3.表达式求值 4.递归实现 表达式是由操作数(运算对象)、运算符、括号组成的有意义的式子。运算符从运算对象的个数上分,有单目运算符和双目运算符;从运算类型上分,有算术运算、关系运算、逻辑运算。在此仅限于讨论只含二目运算符的算术表达式。 Exp=a×b+(c-d/e) ×f Exp=S1 OP S2 称为 中缀表达式 但是 Exp=S1 S2 OP 后缀表达式 a b×c d e / - f ×+ 更方便计算机实现 .运算符的优先级为:()—— ^ ——*、/、%—— +、- ; .有括号出现时先算括号内的,后算括号外的,多层括号,由内向外进行; .乘方连续出现时先算最右面的;2^3^2 处理过程是:需要两个栈:对象栈s1和算符栈s2。 ①当自左至右扫描表达式的每一个字符; ② 若是表达式结束符,运算结束; ③当前字符是运算对象,入对象栈,返①; ④当前字符是运算符时,要与栈顶运算符比较,若高则入栈,返 ① ;否则,从对象栈出栈两个运算量,然后与从算符栈出栈一个运算符进行运算,并将其运算结果入对象栈,返①。 作业 1.写一算法, 利用栈判断一个字符串是否为回文。 2.写一算法, 利用栈将一个单链表逆置。 对象栈 算符栈 2 + 对象栈 算符栈 2 + 1 6 * 对象栈 算符栈 2 + 6 对象栈 算符栈 8 对象栈 算符栈 2 + ( 对象栈 算符栈 2 + ( 4 - 3 对象栈 算符栈 2 + 1 ( 对象栈 算符栈 2 + 1 左括号在栈外优先级最高 右括号遇到左括号,左括号直接出栈在栈外优先级最高 左括号在栈内优先级比-低 例 计算 2+(4-3)*6 算法描述: 读入表达式一个字符; while(未遇到结束符) {if(当前字符是运算对象) {将该字符入对象栈;扫描下一个字符;} else//当前字符是运算符 switch(当前运算符) {case 左括号:{进栈;扫描下一个字符; break;} case 右括号,将算符栈顶至左括号之间的运算符依次出栈, 每个运算符并与对象栈出栈的两个运算对象进行运算, 结 果入对象栈;} default: if(当前字符优先级=运算栈顶的优先级) { 从运算栈弹出一个运算符; 从对象栈弹出两个对象; 计算,将结果入对象栈; } else {将当前运算符入运算符栈;扫描下一个字符;} }//switch结束 } //while结束 输出对象栈中栈顶的值; 算法描述: 读入表达式一个字符; while(未遇到结束符) {if(是运算对象) 压入栈; else//若是运算符
您可能关注的文档
最近下载
- 求职陷阱教学课件.pptx VIP
- 叙事护理案例分享演讲课件-.pptx VIP
- 《播音主持创作基础》对象感.ppt
- 审计学(第11版)秦荣生习题答案.pdf
- 《复变函数与积分变换》(西北工业大学)中国大学MOOC(慕课)章节测验试题(答案).pdf
- 《少数民族传统体育在幼儿园的应用研究》开题报告2800字.docx VIP
- 统编语文教科书三年级下册第七单元教学解读与集体备课.pptx VIP
- 组织行为学(第二版)第四章价值观念.pptx
- CAM软件:Siemens NX CAM二次开发_(4).UGOpenGRIP脚本编程技术.docx
- 口腔正畸主治医师资格考试(代码357)题库(含答案).pdf VIP
文档评论(0)