1 / 23
文档名称:

树和二叉树——数据结构实验报告.doc

格式:doc   大小:316KB   页数:23
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

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

分享

预览

树和二叉树——数据结构实验报告.doc

上传人:薄荷牛奶 2018/10/23 文件大小:316 KB

下载得到文件列表

树和二叉树——数据结构实验报告.doc

文档介绍

文档介绍:实习报告
题目:编写一个实现基于二叉树表示的算术表达式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求值。
(poundExpr(p,E1,E2)――构造一个新的复合表达式(E1)p(E2)。
概要设计
1、数据类型的声明:
在这个课程设计中,采用了链表二叉树的存储结构,以及两个顺序栈的辅助存储结构
/*头文件以及存储结构*/
#include<>
#include<>
#include<>
#include<>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW 0
typedef int Status;
2、表达式的抽象数据类型定义
ADT Expression{
数据对象D:D是具有数值的常量C和没有数值的变量V;
数据关系:R={<(V或者C)P(V或者C)>|V,C∈D, <(V或者C)P(V或者C)>表示由运算符P结合起来的表达式E}
基本操作:
Status Input_Expr(&string,flag)
操作结果:以字符序列的形式输入语法正确的前缀表达式,保存到字符串string; 参数flag表示输出的提示信息是什么,输入成功返回OK,否则,返回ERROR。
void judge_value(&E,&string,i)
初始条件:树E存在,表达式的前缀字符串string存在;
操作结果:判断字符string[i],如果是'0'-'9'常量之间,二叉树结点E存为整型;否则,存为字符型。
Status ReadExpr(&E,&exprstring)
初始条件:表达式的前缀形式字符串exprstring存在;
操作结果:以正确的前缀表示式exprstring并构造表达式E,构造成功,返回OK,否则返回ERROR。
Status pare(c1,c2)
初始条件:c1和c2是字符;
操作结果:如果两个字符是运算符,比较两个运算符的优先级,c1比c2优先,返回OK,否则返回ERROR。
void WriteExpr(&E)
初始条件:表达式E存在;
操作条件:用带括弧的中缀表达式输入表达式E。
void Assign(&E,V,c,&flag)
初始条件:表达式E存在,flag为标志是否有赋值过;
操作结果:实现对表达式E中的所有变量V的赋值(V=c)。
long Operate(opr1,opr,opr2)
初始条件:操作数opr1和操作数opr2以及操作运算符opr;
操作结果:运算符运算求值,参数opr1,opr2为常量,opr为运算符,根据不同的运算符,实现不同的运算,返回运算结果。
Status Check(E)
初始条件:表达式E存在;
操作结果:检查表达式E是否还存在没有赋值的变量,以便求算数表达式E的值。
long Value(E)
初始条件:表达式E存在;
操作结果:对算术表达式求值,返回求到的结果。
poundExpr(P,&E1,E2)
初始条件:表达式E1和E2存在;
操作条件:构造一个新的复合表达式(E1)P(E2)。
Status Read_Inorder_Expr(&string,&pre_expr)
操作结果:以表达式的原书写形式输入,表达式的原书写形式字符串string变为字符串pre_expr,后调用reversal_string()函数反转得到前缀表达式pre_expr。得到正确的前缀表达式返回OK,否则,返回ERROR。
void MergeConst(&E)
操作结果:常数合并操作,合并表达式E中所有常数运算。
}ADT Expression
3、整体设计
1、顺序栈的基本操作:
对于栈SqStack:
Status InitStack(SqStack *S) /* 构造一个空栈S */
Status StackEmpty(SqStack S) /* 若栈S为空栈,则返回TRUE,否则返回FALSE */
Statu

最近更新

领导意见征求街道建议书 5页

异位妊娠患者的出院指导 33页

2024年海南警察学院马克思主义基本原理概论期.. 12页

2024年清涧县招教考试备考题库附答案解析(必.. 31页

2024年湖北科技职业学院马克思主义基本原理概.. 12页

2024年湖南科技大学潇湘学院马克思主义基本原.. 13页

2024年漾濞县幼儿园教师招教考试备考题库附答.. 31页

2024年牡丹江医科大学马克思主义基本原理概论.. 12页

2024年甘肃财贸职业学院马克思主义基本原理概.. 12页

2024年石台县幼儿园教师招教考试备考题库带答.. 31页

2024年福州工商学院马克思主义基本原理概论期.. 13页

2024年衡山县幼儿园教师招教考试备考题库附答.. 30页

2024年西安电子科技大学长安学院马克思主义基.. 13页

2024年贵州开放大学马克思主义基本原理概论期.. 13页

2024年辽东学院马克思主义基本原理概论期末考.. 13页

2024年通化医药健康职业学院马克思主义基本原.. 13页

2024年郑州商贸旅游职业学院马克思主义基本原.. 12页

2024年铜仁学院马克思主义基本原理概论期末考.. 12页

2024年长春财经学院马克思主义基本原理概论期.. 13页

2024年阳信县招教考试备考题库带答案解析(必.. 30页

2024年青神县招教考试备考题库附答案解析(必.. 30页

2024年高阳县幼儿园教师招教考试备考题库带答.. 30页

2024年黑龙江工商学院马克思主义基本原理概论.. 12页

2025年上海南湖职业技术学院马克思主义基本原.. 13页

2025年中国刑事警察学院马克思主义基本原理概.. 13页

网络安全人才培养-第8篇 37页

2025年仪陇县招教考试备考题库带答案解析 30页

高温高压条件下的探测 35页

2025年冀中职业学院马克思主义基本原理概论期.. 13页

高可用性技术在SD-SAN中的应用 27页