二叉树的递归创建与遍历.docx
文本预览下载声明
一、目的
本实验的目的是通过理解二叉树的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。
题目
二叉树的创建与访问算法的设计
实验类型
设计性。本实验设计了二叉树的创建与访问算法。
要求及提示
1、【问题描述】
从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。
【基本要求】
实现以下基本操作:
从键盘输入二叉树的元素,建立二叉树。
实现二叉树的后序遍历算法。
算法主要思路:
通过递归先序法建立二叉树,然后利用递归中序遍历法输出二叉树。
主要函数
建立:esh *creat(esh *bt)
输出:void preorder(esh *bt)
源代码
#includestdio.h
#includestdlib.h
#includestring.h
typedef struct erchashu
{
char data;
struct erchashu *lchild;
struct erchashu *rchild;
}esh;
esh *creat(esh *bt)
{
char ch;
scanf(%c,ch);
getchar();
if(ch== ) bt=NULL;
else
{
bt=(esh*)malloc(sizeof(esh));
bt-data=ch;
bt-lchild=creat(bt-lchild);
bt-rchild=creat(bt-rchild);
}
return bt;
}
void preorder(esh *bt)
{ if(bt!=NULL)
{
preorder(bt-lchild);
printf(%c\t,bt-data);
preorder(bt-rchild);
}
}
int main()
{
esh *d,*c;
printf(“输入元素\n”);
c=creat(d);
printf(“输出\n”);
preorder(c);
return 0;
}
程序截图
显示全部