1 / 17
文档名称:

表达式翻译课程设计报告.docx

格式:docx   页数:17页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

表达式翻译课程设计报告.docx

上传人:分享精品 2016/3/2 文件大小:0 KB

下载得到文件列表

表达式翻译课程设计报告.docx

文档介绍

文档介绍:软件学院数据结构课程设计报告--表达式翻译指导老师:钱鸽学号:1415925721专业:云计算班级:三班姓名:,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。算法输入:一个算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)操作符为+、-、*、/,用#表示结束。算法输出:由中缀表达式转换为后缀表达式,如果不是括号配对的话则输出括号不配对。算法要点:设置运算符栈和括号配对的栈在进行表达式的译过程进行判断括号的配对问题。,利用所学栈的方法对表达式的中缀和后缀之间的转换,并且实现对括号配对的判断。编写完整程序,将中缀表达式翻译成后缀表达式。表达式由操作数(变量)、操作(运算符)以及小括弧“(”和“)”组成,其中:1)操作包括算术运算、关系运算和逻辑运算三类;2)操作数为单个字符或由字母和数字任意多个字符构成;3)能够识别出简单的错误,如括弧不匹配。输入:中缀表达式,80个字符以内。输出:运算结果。。它的实现是栈应用的一个典型例子。本程序使用通常使用的算法为“算符优先法”。在计算机中如果想要计算出一个表达式的值,则需要先将表达式转换为计算机能够识别的表达式,即中缀表达式转换为后缀表达式。首先需要了解算数运算符的优先级等。即:1)先乘除,后加减。2)从左算到右。3)先括号内,后括号外。故若中缀表达式为:1*2+(2-(6-4)*4)/2。后缀则为:12*264-4*-2/+。算符优先法就是根据这个运算优先关系的规定来实现对表达式的编译或解释执行的。,也能实现对括号是否匹配进行检测。通过从键盘输入字符算数表达式,经运行后由屏幕输出转化后的后缀表达式。(stack)是最常用和最重要的数据结构。操作运算符和左括号是放在栈中的,表达式的优先级处理也是基于栈来实现的,通过利用入栈和出栈来调整运算符的优先级。栈是限制在表的一端进行插入和删除的线性表(即一维数组)。允许插入删除的一端为栈顶,另一固定端为栈底。当表中没有元素时称为空栈。如图2-1所示,栈中有三个元素,进栈的顺序是a、b、c,当需要出栈时其顺序为c、b、a。所以栈又称为后进先出的线性表(LastInFirstOut),简称LIFO表。而在日常生活中,有很多后进先出的例子。在程序设计中,常常需要使得与保存数据时相反顺序来使用这些数据,这时就需要用一个栈来实现。对于栈,常做的基本运算有:(1)栈初始化:Init_Stack(s)c出栈入栈图2-1abtop初始条件:栈s不存在操作结果:构造了一个空栈。(2)判断栈空:Empty_Stack(s)初始条件:栈s已存在操作结果:若栈s为空栈返回为1,否则返回为0.(3)入栈:Push_Stack(s,x)初始条件:栈s已存在操作结果:在栈s的顶部插入一个新元素x,x成为新的栈顶元素。栈发生变化。(4)出栈:Pop_Stack(s)初始条件:栈s存在且非空操作结果:栈s的顶部元素从栈中删除,栈中少了一个元素。栈发生变化。(5)读栈顶元素:Top_Stack(s)初始条件:栈s存在且非空操作结果:栈顶元素作为结果返回,栈不变化。栈可以用顺序表实现,称为顺序栈;也可以用链表实现,称为链栈。顺序栈和链栈的逻辑功能一样。顺序栈必须先开一定大小的内存空间,执行起来简单并且速度快,但可能溢出;链栈的内存空间随用随开,不会溢出;但执行复杂(不断地动态分配)且速度慢。,首先构造一个空栈,包含的操作有进栈Push(),出栈Pop(),取栈顶元素GetTop(),判栈的长度StackLen()。利用这个顺序栈对中缀表达式进行检测,若出错(主要为括号比匹配),给出出错提示;否则,将中缀表达式转换为后缀表达式。判断表达式的的正确和如何转换中缀表达式的过程,共用了两个栈s,s1。第一个栈用来将输入的字符进行判断是否需要进行入栈,而第二个栈则是用来存放小括号的,用来判断括号是否配对的。首先就是对于输入进来的表达式进行过滤数字,如果是数字则不进栈直接输出。如果是操作符,先判断栈是不是空的,是的话直接进栈,不是空栈,则需要将栈内的元素出栈判断是哪个操作符,进而判断其优先级。在这个过程中有两个问题:第一就是栈内的操作符与栈外的操作符是同级别的,那么按照从左到右的顺序先进行栈内的操作符运算,再运算栈外的。第二点如果栈内栈外的操作符不同级,要么是大于,要么是小于,

最近更新

生物质焦油直接还原炼铁机理与动力学规律研究.. 2页

生物碱Rubrolone及倍半萜类天然产物的全合成研.. 2页

生物基强化生态浮床对地表水氮素的净化作用的.. 2页

生命教育校本课程开发的叙事研究——基于E校的.. 2页

水光除皱项目可行性报告 32页

树脂镜片车房可行性报告 37页

智能马桶盖可行性报告 30页

环糊精体系的表征及性能研究的开题报告 2页

环保BOT项目融资风险管理研究的开题报告 2页

房屋开发项目可行性报告 37页

物联网实验箱上位机管理系统的开题报告 2页

牙根纵裂临床相关研究(附25例临床病例分析).. 2页

烯啶虫胺环境行为研究的开题报告 2页

太白山蜂蜜可行性报告 32页

滨海新区住房保障信息管理系统的设计与实现的.. 2页

湿法炼锌铁渣制备锰锌铁氧体粉料的研究的开题.. 2页

湖南省城镇化对农村居民消费的影响研究的开题.. 2页

冷库建设可行性报告 37页

写给医院的可行性报告 27页

深空探测借力飞行轨道自动设计方法研究中期报.. 2页

淮河流域地表水水化学及稳定性同位素研究的开.. 2页

液压挖掘机工作装置拟人操作控制技术研究的开.. 2页

临时项目的可行性报告 34页

重庆食育研究院研究报告 29页

多模式联运强化集装箱流通 22页

包装标准化设计 18页

可行性研究报告咨询方案 36页

泰拉霉素合成工艺研究的开题报告 2页

山东省2022-2023年春季高考护理真题 8页

原神凝光用脚帮助旅行者 1页