数据结构课设剖析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NULL
+
NULL
+13-21*a/b5
21 13
ab
a
/
-
*
+
NULL
+13-21*a/b5
13
-
21
*
a
/
ab
+
NULL
+13-21*a/b5
+
ຫໍສະໝຸດ Baidu13
-
21
*
a
/
ab
+
13
-
21
*
a
/
ab
前缀:+13-21*a/b5
中缀:13+21-a*b/5
后缀: 13,21ab5/*+
其他算法
使用递归的方法,类似前中后序遍历。 如:Merge, Value等方法
b
/
5
a
*
NULL
21
-
NULL
13
+
NULL
+13-21*a/b5
b
/
5
a
*
NULL
21
-
NULL
13
+
NULL
+13-21*a/b5
/ ab
a
*
NULL
21
-
NULL
13
+
NULL
+13-21*a/b5
a 21 13
ab
*
/
-
NULL
+
NULL
+13-21*a/b5
21 13
*
a
/
ab
-
数据结构课程设计
表达式类型的实现
问题描述
一个表达式和一棵二叉树之间,存在着自然的 对应关系。写一个程序,实现 基于二叉树表示的 算术表达式Expression的操作。
基本要求
假设算术表达式Expression内可以含有变量(a-z),常量(0-9)和二 元运算符(+,-,*,/,^(乘幂))。实现以下操作:
(1) ReadExpr(E)――以字符序列的形式输入语法正确的前缀表达式并 构造表达式E。
(2) WriteExpr(E)――用带括号的中缀表达式输出表达式E。 (3) Assign(V,c)――实现对变量V的赋值(V=c),变量的初值为0。 (4) Value(E)――对算术表达式E求值。 (5) CompoundExpr(p,E1,E2)――构造一个新的复合表达式(E1)p(E2)。 (6) 合并常数操作MergeConst(E)一合并表达式E中所有的常数运算。
功能
1. 根据前缀表达式生成二叉树 2. 输出中缀表达式,后缀表达式 3. 合并常数,计算结果 4. 批量计算
谢谢观看
数据结构
根据题目要求,本次课程设计的主要数据结 构就是二叉树,由于需要根据表达式构造二叉树, 所以用到的数据结构还有堆栈。
算法
1. 用堆栈存储二叉树的形式递归生成前缀表达式 对
应的二叉树。
2. 基于前中后序遍历做改动
生成树算法
用堆栈存储二叉树的形式递归生成前缀表达式对 应的二叉树。
+13-21*a/b5