二叉树的创建与访问算法设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“创建二叉树的算法实现”。
内蒙古工业大学信息工程学院
实 验 报 告
课程名称: 数据结构(C语言版)实验名称: 二叉树的创建与访问算法设计 实验类型: 验证性□ 综合性□ 设计性□ 实验室名称: c机房 班级:xxxxxxxxx 学号: xxxxxxxxxxxxxxx 姓名: xxx 组别: 同组人:
成绩:
实验日期: 2011年 6月
内蒙古工业大学信息工程学院
预习报告成绩: 指导教师审核(签名): 2011年 月 日
预习报告
一.实验目的 本实验以二叉树的创建与访问算法设计作为实验内容,掌握树型结构的实现方法,培养解决负责问题的能力。
二.实验内容
1、编写生成二叉树的函数,二叉树的元素从键盘输入;
2、编写在二叉树中插入元素的函数;
3、编写在二叉树中删除元素的函数;
4、编写遍历并输出二叉树的函数。
方案一采用递归算法实现二叉树遍历算法。方案二采用非递归算法实现二叉树遍历算法。三.实验要求
1、掌握树型结构的机器内表示;
2、掌握树型结构之上的算法设计与实现;
3、列表对比分析两种数据结构的相应操作的时间复杂度、空间复杂度,阐明产生差异的原因。四.问题描述
从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。
五.基本要求
实现以下基本操作:
(1)从键盘输入二叉树的元素,建立二叉树。(2)实现二叉树的先序遍历算法。
内蒙古工业大学信息工程学院
实验报告成绩: 指导教师审核(签名): 2011年 月 日
实验报告
一 程序清单
#include “stdio.h” #include “string.h” #include #define NULL 0
typedef struct BiTNode{ char data;
struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;
BiTree Create(BiTree T){
char ch;
ch=getchar();if(ch=='#')T=NULL;else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))printf(“Error!”);T->data=ch;
T->lchild=Create(T->lchild);T->rchild=Create(T->rchild);}
return T;}
int Depth(BiTree T){
int dep=0,depl,depr;if(!T)dep=0;else {
depl=Depth(T->lchild);depr=Depth(T->rchild);
dep=1+(depl>depr?depl:depr);}
return dep;}
void main(){ BiTree T;int dep;printf(“请输入您要创建的二叉树!!n
'#'表示空元素!n”);T=Create(T);
printf(“nn您要求的二叉树的深度:”);dep=Depth(T);
printf(“%dnn”,dep);} }
内蒙古工业大学信息工程学院
二 测试结果
三 调试程序出现的问题及解决的方法
编程中出现很多的编译错误,主要采用对每个函数调试,设断点,运用自己的程序中,让我更好的掌握了递归算法。四 实验心得体会
通过这次试验,让我巩固了链式存储结构和递归算法的使用,用模块化思路设计程序,编写程序要小心谨慎,要细化到每个函数,通过多次调试,才使得整个程序正确运行,达到预期结果。