数据结构实验报告.docx

想预览更多内容,点击预览全文

申明敬告:

本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己完全接受本站规则且自行承担所有风险,本站不退款、不进行额外附加服务;如果您已付费下载过本站文档,您可以点击这里二次下载

文档介绍

课程设计实验报告实验名称:表达式类型的实现编译环境:硬件:PC软件:VS2010问题描述一个表达式和一棵二叉树之间,存在着自然的对应关系。写一个程序,实现基于二叉树表示的算术表达式Expression的操作。基本要求假设算术表达式Expression可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,*,/,^(乘幂))。实现以下操作。ReadExpr(E)——以字符序列的形式输入语法正确的前缀表示式并构造表达式E。WriteExpr(E—)—用带括弧的前缀表示式输出表达式E。Assign(V,c)——实现对变量V的赋值(V=c),变量的初值为0。Value(E)——对算术表达式E求值。CompoundExpr(P,E1,E2)——构造一个新的复合表达式(E1)P(E2)。选作内容:增加常数合并操作MergeConst(E)合--并-表达式中E的所有常数运算。例如:表达式E=2+2*1-A进行合并常数的操作后,求得E=4-A以表达式的原书写形式输入需求分析以字符序列的形式输入语法正确的中缀表示式并构造表达式E。即要根据正确的前缀式建立一棵二叉树T。用带括弧的前缀表达式输出表达式E。即要求在前缀遍历二叉树的时候考虑运算符的优先级,在适当的位置输出括弧。实现对变量V的赋值(V=c),变量的初值为0。那就在中缀遍历二叉树的过程中比较结点的值是否为V,找到V以后将c赋给V。对算术表达式E求值。如果表达式中有变量的话,首先提示用户表达式中变量,建议先执行操作3(实现对变量V赋值),执行完后再回来执行表达式求值这一步骤。表达式求值利用递归,如果某个结点的值为运算符并且它的左右孩子结点的值为数据,那么就把(左孩子)(运算符)(右孩子)的结果赋给该结点。一层一层往上,最后只剩下一个根结点。此时根结点的值就是表达式E的值。5.构造一个新的复合表达式(E1)P(E2)。只要先构造表达式

最近下载