您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 数据结构实验6-树和二叉树的操作
《数据结构》实验报告实验序号:6实验项目名称:树和二叉树的操作学号姓名专业、班实验地点指导教师实验时间一、实验目的及要求1、进一步掌握指针变量、动态变量的含义。2、掌握二叉树的结构特征,以及各种存储结构的特点及适用范围。3、掌握用指针类型描述、访问和处理二叉树的运算。4、掌握用二叉树前序、中序、后序、层次遍历的方法。二、实验设备(环境)及要求微型计算机;windows操作系统;MicrosoftVisualStudio6.0集成开发环境。三、实验内容与步骤1.根据P129的方法,将a*b-((c+d*e/f)+g)转化为表达式二叉树(绘图),并写出表达式二叉树的前序、中序和后序遍历顺序。2.链式表表示和实现二叉树如下:#includestdio.h#includestdlib.h#definemax50typedefstructliuyu{intdata;structliuyu*lchild,*rchild;}test;liuyu*root,*p,*q[max];intsum=0;intm=sizeof(test);voidinsert_data(intx)/*生成二叉排序树*/{liuyu*p,*q,*s;s=(test*)malloc(m);s-data=x;s-lchild=NULL;s-rchild=NULL;if(!root){root=s;}p=root;while(p)/*如何接入二叉排序树的适当位置*/{q=p;if(p-data==x){printf(dataalreadyexist!\n);return;}elseif(xp-data)p=p-lchild;elsep=p-rchild;}if(xq-data)q-lchild=s;elseq-rchild=s;}voidmain()/*先生成二叉排序树*/{inti,x;i=1;root=NULL;/*千万别忘了赋初值给root!*/do{printf(pleaseinputdata%d:,i);i++;scanf(%d,&x);/*从键盘采集数据,以-9999表示输入结束*/if(x==-9999){printf(\nNowoutputdatavalue:\n);}elseinsert_data(x);/*调用插入数据元素的函数*/}while(x!=-9999);}改写以上程序,实现功能如下(任选3题):1).编写函数实现前序、中序和后序遍历。2).编写函数实现计算叶节点个数。3).编写函数实现层序遍历。4).编写函数实现求二叉树的深度5).编写函数实现中序非递归遍历(利用栈)四、分析与讨论对上机实践结果进行分析,上机的心得体会。五、教师评语签名:日期:成绩附源程序清单:
本文标题:数据结构实验6-树和二叉树的操作
链接地址:https://www.777doc.com/doc-5741695 .html