- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
表达式的描述方式主要有三种: 中缀表达式:运算符放在两个运算对象之间; 前缀表达式(波兰式):运算符放在两个运算对象之前。 后缀表达式(逆波兰式):运算符放在两个运算对象后面; 在前 (后)缀表达式中,不再引入括号,运算符放在两个运算对象的前 (后)面,所有的计算按运算符出现的顺序,严格从左向右(从右往左)进行(不再考虑运算符的优先规则)。由此可见,前(后)缀表达式的计算比中缀表达式的计算简单,便于程序自动处理。 注:运算对象在中缀表达式、前缀表达式、后缀表达式中的出现次序不变,只是运算符出现的次序不同。 说明: 中缀表达式转化为后缀表达式: ①将中缀表达式中所有的计算顺序都按计算规则用嵌套括号表示; ②顺序将每对括号中的运算符移到相应括号的后面; ③删除所有括号。 如:6*(2+5)-7先转化为:((6*(2+5))-7),再转化为:625+*7- 中缀表达式转化为前缀表达式: ①将中缀表达式中所有的计算顺序都按计算规则用嵌套括号表示; ②顺序将每对括号中的运算符移到相应括号的前面; ③删除所有括号。 如:6*(2+5)-7先转化为:((6*(2+5))-7)再转化为:-*6+257 前缀和后缀表达式转化为中缀表达式将上述步骤逆反即可。前缀与后缀表达式之间的转化可以借助于中缀表达式。 (5)栈与递归 一个子程序可以直接或间接地调用自身。在一层层递归调用时,其返回地址和处在每一调用层的变量数据都需一一记下进栈。返回时它们一一出栈并被采用。递归是程序设计中一个强有力的工具。 float fac(int n) { float p; if ( (n==0) || (n==1) ) p=1; else p=n*fac(n-1); return p; } 其一,有许多函数是递归定义的,如求n!、Fibonacci数列等函数: 其二,有的数据结构,如二叉树、广义表等,由于结构本身固有的递归特性,它们的操作可递归的描述,如下例: void PreOrder(BiTree bt) { if (bt!=NULL) { printf (%6c,bt-data); //访问根结点 PreOrder(bt-lchild); //先序遍历左子树 PreOrder(bt-rchild); //先序遍历右子树 } } 其三,虽然问题本身没有明显的递归结构,但用递归求解比迭代求解更简单,如八皇后、汉诺塔问题等,如下例: n阶Hanoi塔问题: 假设有三个分别命名为X、Y和Z的塔座,在塔座X上插有n个直径大小各不相同、依小到大编号为1,2,…,n的圆盘,如下图所示,现要求将X轴上的n个圆盘移至Z轴上并仍按同样顺序叠放。 圆盘移动时必须遵循下列规则: 每次只能移动一个圆盘; (2) 圆盘可以插在X、Y和Z中的任一塔座上; (3) 任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。 void Hanoi(int n, char x, char y, char z) {//将塔座x上由小到大且自上而下编号为1至n的n个圆盘按规则移到塔座z上 if (n==1) move(x, 1, z); //编号为1的圆盘从x移到z else { Hanoi(n-1, x, z, y); //将x上编号为1到n-1的圆盘移到y,z作辅助轴 move(x, n, z); //将编号为n的圆盘从x移到z Hanoi(n-1, y, x, z); //将y上编号为1至n-1的圆盘移到z,x作辅助轴 } }//Hanoi 算法描述如下: void move(char x, int n, int z ) {//把编号为n的圆盘从x轴移到z轴的操作,c为搬动计数,全局变量 printf(“%d. Move disk %d from %c to %c\n”, ++c, n, x, z); } 二、队列 1、队列的定义 2、队列的表示与实现 1、队列的定义 队列(queue)也是线性表的一种特殊情况,其所有的插入均限定在表的一端进行,而所有的删除则限定在表的另一端进行。允许插入的一端称队尾(rear),允许删除的一端称队头(front)。队列的结构特点是先进队的元素先出队,因此,通常又把队列叫做先进先出(FIFO,First In First Out)表,如下图所示: a1 a2 a3 … an 出队列 入队列 队头 队尾 队列的示意图 * 数据结构
您可能关注的文档
- 社会科学研究方法课程论文.doc
- 社交礼仪第一讲.ppt
- 社科院防排烟系统施工方案.doc
- 社区春节活动策划方案.doc
- 社区卫生服务供应链的构建及其协调问题研究.doc
- 摄影技巧学习之完全构图宝典.doc
- 申论关于制度的万能句.doc
- 申请授予学士学位专业自评报告.doc
- 深圳金地梅陇镇四期商铺价格报告.ppt
- 深圳无线城市专题汇报.ppt
- 2024年山东省公务员录用考试《行测》答案+解析.pdf
- 2024年青海省公务员录用考试《行测》答案+解析.pdf
- 2024年湖北申论真题(县乡卷)及参考答案.pdf
- 2023年山东省公考《申论》真题(B类)及参考答案.pdf
- 2024年重庆市公务员录用考试《行测》答案+解析.pdf
- 2024年云南公务员录用考试《行测》题(网友回忆版).pdf
- 2024年吉林省公务员录用考试《行测》答案+解析.pdf
- 2024年国家公务员录用考试《行测》题(行政执法卷).pdf
- 2024年上海市公考《申论》(B卷)题及参考答案_20241205_110305.pdf
- 2023年吉林省公务员录用考试《行测》题....pdf
最近下载
- JTS 133-2013水运工程岩土勘察规范.docx VIP
- 工程设计方案科学合理(3篇).docx
- 电子元器件选型要求规范实用经典要点.docx
- 慢性病综合防控示范区建设培训PPT课件.ppt
- 医疗器械独立软件(符合ISO 13485、MDR、FDA 21 CFR Part 820)软件配置控制程序2025年.docx
- sg500mx sg630mx sgxxhv光伏并网逆变器通信协议.pdf
- 湖北省荆门市2022年中考[生物]考试真题与答案解析.pdf VIP
- 国际贸易公司办公室主任职责.docx VIP
- 2025年高考数学模拟试卷01(九省新高考新结构卷)及答案.docx VIP
- 码垛机机械手的整体设计论文大学毕设论文.doc
文档评论(0)