二叉树的创建与访问算法设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“创建二叉树的算法实现”。
内蒙古工业大学信息工程学院
实 验 报 告
课程名称: 数据结构(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);} }
内蒙古工业大学信息工程学院
二 测试结果
三 调试程序出现的问题及解决的方法
编程中出现很多的编译错误,主要采用对每个函数调试,设断点,运用自己的程序中,让我更好的掌握了递归算法。四 实验心得体会
通过这次试验,让我巩固了链式存储结构和递归算法的使用,用模块化思路设计程序,编写程序要小心谨慎,要细化到每个函数,通过多次调试,才使得整个程序正确运行,达到预期结果。
内蒙古工业大学信息工程学院四、编译程序:#include #include #define MAXSIZE 100typedef char ElemType; typedef struct LNode//定义单链表结点类型 {ElemType data;struct......
实验三 二叉树遍历算法一、实验目的1. 进一步理解掌握二叉树二叉链表存储结构。 2. 掌握二叉树遍历的递归与非递归算法。二、实验要求1. 认真阅读和掌握(先序、中序、后序和层次......
template BiTree ::BiTree(BiNode *root) {creat(root);}template void BiTree ::Creat(BiNode *root) {cin>>ch;if (ch=='# ') root=NULL;//建立一棵空树else {root=new B......
家谱的设计与实现(树,查找)家谱的设计主要是实现对家庭成员信息的建立、查找、插入、修改、删除等功能。可。基本功能如下:(1)家谱中每个成员的信息包括:姓名、性别。 (2)家谱祖先数......
算法设计与分析学习心得班级:物联网1201 姓名:刘潇 学号:1030612129一、实验内容:这学期的算法与设计课,老师布置了这四个问题,分别是货郎担问题,动态生成二维数组,对话框下拉列表,排......