admin 管理员组文章数量: 1086019
2024年9月14日发(作者:windowsserver2008r2企业版)
数据结构实验报告
———
二叉树的建立及其遍历
一、 实验目的
1、 了解二叉树的建立的方法及其遍历的顺序,熟悉二叉树的三种遍历
2、 检验输入的数据是否可以构成一颗二叉树
二、 实验的描述和算法
1、 实验描述
二叉树的建立首先要建立一个二叉链表的结构体,包含根节点和左右子树。因为耳熟的
每一个左右子树又是一颗二叉树,所以可以用递归的方法来建立其左右子树。二叉树的
遍历是一种把二叉树的每一个节点访问完并输出的过程,遍历时根结点与左右孩子的输
出顺序构成了不同的遍历方法,这个过程需要按照不同的遍历的方法,先输出根结点还
是先输出左右孩子,可以用选择语句实现。
2、 算法
#include
#include
#define OVERFLOW 0
#define OK 1
#define ERROR 0
typedef struct BiTNode {
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree CreateBiTree(BiTree T)
{
scanf("%c",&e);
if(e==' ') T=NULL;
else {
}
return T; }
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data=e;
T->lchild=CreateBiTree(T->lchild);
T->rchild=CreateBiTree(T->rchild);
/************************前序遍历***********************/
char PreOrderTraverse(BiTree T,char (* Visit)(char e))
{
}
char Visit(char e)
{
}
main()
{
printf("%5c",e);
return OK;
if(T)
{
}
else return OK;
if(Visit(T->data))
if(PreOrderTraverse(T->lchild,Visit))
if(PreOrderTraverse(T->rchild,Visit)) return OK;
return ERROR;
}
printf("请输入一颗二叉树,按回车结束:n");
T=CreateBiTree(T);
printf("先序遍历的结果:");
PreOrderTraverse(T,Visit);
三、 调试分析
在调这个程序是并没有遇到很大的困难,就是在输入一颗二叉树时,遇到了一点麻烦。
输入时并不是随便乱输,输入的数据必须可以组成一颗二叉树才能才行。试了很久才弄
清这个问题,解决这个问题后,程序就基本上没有什么问题了。输入abc de g f 后
结构如下
四、 实验总结
在这次编程之后,,自己对于二叉树的理解更深了一步,但还是有些地方没有弄清楚,
比如说自己写了一个二叉树,但是输入进去后却不能构成一颗二叉树,这个问题到现在
也没有解决。
版权声明:本文标题:二叉树的建立及其遍历实验报告 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1726299498a941968.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论