数据结构实验9二叉树遍.docx
- 文档编号:28994417
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:7
- 大小:69.52KB
数据结构实验9二叉树遍.docx
《数据结构实验9二叉树遍.docx》由会员分享,可在线阅读,更多相关《数据结构实验9二叉树遍.docx(7页珍藏版)》请在冰豆网上搜索。
数据结构实验9二叉树遍
数据结构-实验9-二叉树遍历的应用
实验报告
实验课程数据结构
实验项目实验九、二叉树遍历的应用
实验地点
指导教师
班级
学生姓名金轶洲
学号090207103
教师评分
日期
一、实验目的
1、掌握二叉树的结构特征,以及各种存储结构的特点及使用范围。
2.掌握用指针类型描述二叉树的方法
3.掌握二叉链表的建立方法;
4.掌握二叉链表遍历的简单应用。
二、实验设备
1.安装有WinXP的PC一台;
2.安装有软件VC6或者VisualStudio2005。
三、实验内容
1、建立的二叉树的相关链式数据结构;
2、实现的创建函数、各种遍历输出函数;
3、编程计算二叉树结点总数、叶结点总数、二叉树的高度。
四、实验步骤
1.定义表示字符数据元素数据类型TElemType。
typedefcharTElemType;
typedefstructBiTNode
{
TElemTypedata;
BiTNode*lchild,*rchild;//左右孩子指针
}BiTNode,*BiTree;
2.根据教材的内容,给出二叉树的链式存储节点。
#include
#include
#include
chararray[101];
//二叉树结点
typedefstructBiTNode{
chardata;
structBiTNode*lchild,*rchild;
}BiTNode,*BiTree;
//按先序序列创建二叉树
intCreateBiTree(BiTree&T,int&index,int&n){
if(index>=n){
return0;
}
//按先序次序输入二叉树中结点的值(一个字符),空格表示空树
if(array[index]==''){
T=NULL;
index++;
}
else{
T=(BiTree)malloc(sizeof(BiTNode));
//生成根结点
T->data=array[index];
index++;
//构造左子树
CreateBiTree(T->lchild,index,n);
//构造右子树
CreateBiTree(T->rchild,index,n);
}
return0;
}
//输出
voidVisit(BiTreeT){
printf("%c",T->data);
}
//先序遍历
voidPreOrder(BiTreeT){
if(T!
=NULL){
//访问根节点
Visit(T);
//访问左子结点
PreOrder(T->lchild);
//访问右子结点
PreOrder(T->rchild);
}
}
//中序遍历
voidInOrder(BiTreeT){
if(T!
=NULL){
//访问左子结点
InOrder(T->lchild);
//访问根节点
Visit(T);
//访问右子结点
InOrder(T->rchild);
}
}
//后序遍历
voidPostOrder(BiTreeT){
if(T!
=NULL){
//访问左子结点
PostOrder(T->lchild);
//访问右子结点
PostOrder(T->rchild);
//访问根节点
Visit(T);
}
}
intmain()
{
intlen,index;
while(gets(array)){
BiTreeT;
len=strlen(array);
index=0;
//创建二叉树
CreateBiTree(T,index,len);
//先序遍历
PreOrder(T);
printf("\n");
//中序遍历
index=0;
InOrder(T);
printf("\n");
//中序遍历
index=0;
InOrder(T);
printf("\n");
}
return0;
}
3.完成创建函数并将代码复制到下面。
4.利用先根遍历算法思想,编程实现二叉树结点总数的计算。
5.利用中根遍历算法思想,编程实现二叉树叶子结点总数的计算。
6.编程实现二叉树高度的计算。
intdepth(BTree*b){
intdep1,dep2;
if(b==NULL)
return0;
else{
dep1=depth(b->left);
dep2=depth(b->right);
returndep1>dep2?
:
dep1+1:
dep2+1;
}
}
7.定义main函数,完成下列工作:
A.定义1个指向二叉树链表根结点的指针变量;
B.利用前面编写的函数,创建下图所示的二叉树;
C.利用前面定义的函数,输出该二叉树的结点总数;
D.利用前面定义的函数,输出该二叉树的叶子结点总数;
E.利用前面定义的函数,输出该二叉树的高度。
五、实验总结
请写出本实验的心得体会。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 二叉