《数据结构》实验四_二叉树的创建和遍历.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:6 大小:80KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

《数据结构》实验四_二叉树的创建和遍历.doc

《数据结构》实验四_二叉树的创建和遍历.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

贵州大学《数据结构》实验报告学院:资源与环境工程学院专业:地理信息系统班级:2008级一班姓名李飞学号080810110037实验组实验时间5月5日指导教师王笏成绩实验项目名称二叉树的创建和遍历实验目的目的:掌握二叉树的常见算法的程序实现。实验要求要求:1、根据实验内容编程,上机调试、得出正确的运行程序。2、写出实验报告(包括源程序和运行结果)。实验内容ABCIEFHGD用二叉链的结构创建一棵二叉树(如下图)分别用先根、中根、后根遍历该二叉树统计叶子结点的个数3、在主函数中设计一个简单的菜单,分别测试上述算法。实验步骤理解核心算法;确定遍历方法用伪码将基本过程在稿纸上写出上级实验,调试程序。实验内容#include"stdafx.h"typedefstructbitnode{intdata;bitnode*lchild,*rchild;}bitnode,*bitree;voidmenu();voidcreatbitree(bitree*t);voidpretraversebitree(bitreet);voidmidtraversebitree(bitreet);voidposttraversebitree(bitreet);intbitreedepth(bitreet);voidshowdepth(bitree);voidclearbitree(bitree&t);voidmain(){bitreet;while(1){menu();inta;scanf("%d",&a);switch(a){case1:creatbitree(&t);break;case2:pretraversebitree(t);break;case3:midtraversebitree(t);break;case4:posttraversebitree(t);break;case5:showdepth(t);break;case6:clearbitree(t);break;case7:exit(0);break;default:break;}}}voidmenu(){printf("\n****************************请选择你的操作*************************\n");printf("1:创建二叉树\n");printf("2:先根遍历\n");printf("3:中根遍历\n");printf("4:后根遍历\n");printf("5:树的深度\n");printf("6:清空该树\n");printf("7:退出程序\n");printf("***********************************************************************\n");return;}voidcreatbitree(bitree*t){inta;printf("请输入一个数");scanf("%d",&a);if(a==0)t=NULL;//用零代表该节点没有孩子else{*t=(bitnode*)malloc(sizeof(bitnode));if(!t)exit(0);else{(*t)->lchild=NULL;(*t)->rchild=NULL;//若不对着两个孩子指针进行赋空,则程序存在Bug!(*t)->data=a;creatbitree(&((*t)->lchild));creatbitree(&((*t)->rchild));}}}//以前序遍历方式构造二叉树voidpretraversebitree(bitreet){if(t!=NULL){printf("%d",t->data);pretraversebitree(t->lchild);pretraversebitree(t->rchild);}}//前序遍历voidmidtraversebitree(bitreet){if(t!=NULL){midtraversebitree(t->lchild);printf("%d",t->data);midtraversebitree(t->rchild);}}//中序遍历voidposttraversebitree(bitreet){