数据结构实验7实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

验证可得表达式正确。程序正常运行。

总结:

了解了二叉树的存储结构以及遍历二叉树的操作。

相关文档
最新文档