数据结构实验7实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
暨南大学本科实验报告专用纸
课程名称数据结构实验成绩评定
实验项目名称习题6.51 指导教师孙世良
实验项目编号实验7 实验项目类型实验地点实验楼三楼机房学生姓名林炜哲学号2013053005
学院电气信息学院系专业软件工程
实验时间年月日午~月日午温度℃湿度(一)实验目的
熟悉和理解二叉树的结构特性;
熟悉二叉树的各种存储结构的特点及适用范围;
掌握遍历二叉树的各种操作及其实现方式。
(二)实验内容和要求
编写一个算法,输出以二叉树表示的算术表达式,若该表达式中含有括号,则应该在输出时添上。
(三)主要仪器设备
实验环境:Microsoft Visual Studio 2012
(四)源程序
#include
#include
typedef struct bitnode{
char data;
struct bitnode *lchild,*rchild;
}bitnode,*bitree;
void create(bitree &T){
char t;
t=getchar();
if(t==' ')
T=NULL;
else{
if( !( T=(bitnode*)malloc(sizeof(bitnode)) ) ) exit(0);
T->data=t;
create(T->lchild);
create(T->rchild);
}
}
void middle_order(bitree &Node){
if(Node != NULL){
if((Node->data=='*'||Node->data=='/')&&(Node->lchild->data=='+'|| Node->lchild->data=='-')) printf("( ");
middle_order(Node->lchild);
if((Node->data=='*'||Node->data=='/')&&(Node->lchild->data=='+'|| Node->lchild->data=='-')) printf(") ");
printf("%c ", Node->data);
if((Node->data=='*'||Node->data=='/')&&(Node->rchild->data=='+'|| Node->rchild->data=='-')) printf("( ");
middle_order(Node->rchild);
if((Node->data=='*'||Node->data=='/')&&(Node->rchild->data=='+'|| Node->rchild->data=='-')) printf(") ");
}
}
int main()
{
bitree y;
printf("以先序遍历的方式输入二叉树:");
create(y);
printf("输出表达式:");
middle_order(y);
return 0;
}
(五)数据调试
(六)实验结果分析与总结
以先序遍历的方式输入二叉树:-+a *b -c d /e f ,
由此得到表达式:a+b*(c-d)-e/f
验证可得表达式正确。程序正常运行。
总结:
了解了二叉树的存储结构以及遍历二叉树的操作。