实验3四则运算表达式求值.doc
7页数据结构 四则运算表达式求值实验报告 四则运算表达式求值 学生姓名:陈旸浩 学生学号:20110807220 专业班级:智能科学与技术2班 指导老师:骆嘉伟 实验5四则运算表达式求值1、 需求分析:1. 本程序是利用二叉树后序遍历来实现表达式的转换,同时可以使用实验三的结果来求解后缀表达式的值2. 输入:在字符界面上输入一个中缀表达式,回车表示结束3. 输出:如果该中缀表达式正确,那么在字符界面上输出其后缀表达式,其中后缀表达式中两相邻操作数之间利用空格隔开;如果不正确,在字符界面上输出表达式错误提示4. 测试数据输入:21+23*(12-6)输出:21 23 12 6 -*+运算结果为:149二、概要设计 抽象数据类型为实现上述程序的功能,应以二叉树类BiTree存储用户的输入,以及计算出的结果算法的基本思想根据题目要求,利用栈计算,和二叉树存储,来计算表达式该算法的基本思想是:先利用栈进行计算,然后用二叉树进行存储,和实验三算法一样来计算逆波兰表达式的值。
程序的流程 程序由三个模块组成: (1) 输入模块:输入一个运算式 (2) 计算模块:利用栈进行表达式的计算,二叉树来存储 (3 ) 输出模块:屏幕上显示出后缀表达式和运算结果三、详细设计物理数据类型用二叉树表示表达式:若表达式为数或简单变量,则相应二叉树中仅有一个根结点,其数据域存放该表达式信息;若表达式=(第一操作数)(运算符)(第二操作数),则相应的二叉树中以左子树表示第一操作数,右子树表示第二操作数,根结点的数据域存放运算符(若为一元算符,则左子树空)操作数本身又为表达式算法的具体步骤中序表达式转后序表达式*houxu(char *infix):从左到右遍历中序表达式的每一数字和符号,若是数字就输出,即成为后序表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于栈顶符号(乘除优先加减)则栈顶元素依次出栈并输出,并将当前符号进栈,一直到最终输出后序表达式为止后序表达式计算结果qiuzhi(char *postfix):从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。
算法的时空分析时间复杂度:O(n); 空间复杂度:O(n);输入和输出的格式输入:输入表达式:输出:后序表达式:后续表达式求值:四、 测试结果五、附录#include

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


