创建二叉树并用前序遍历法遍历.doc
文本预览下载声明
二叉树结构(设计性)
实验目的
2.掌握二叉树的非线性和递归性特点。
3.熟练掌握二叉树的递归遍历操作的实现方法,掌握二叉树的非递归遍历操作的实现。
4.掌握线索二叉树的定义和基本操作。
5.加深对二叉树结构和性质的理解,逐步培养解决实际问题的编程能力。
实验1.认真阅读和掌握本实验的算法。
2.上机将本算法实现。
3.保存程序的运行结果,并结合程序进行分析。
4.上机过程中,能够熟练运用高级语言的程序调试器DEBUG调试程序。
5.上机后,认真整理源程序及其注释,完成实验报告(包括源程序、实验结果、算法分析、心得体会等)。
实验内容
在VC++环境下编写调试二叉链表遍历的算法和函数把已布置作业中的算法改成程序,进行运行。1.
2.
3.
4.
5.
6.
7.
8.#includestdio.h
#includemalloc.h
#includestring.h
typedef struct tree
{
int data;
struct tree *LChild;
struct tree *RChild;
}tree;
tree *creatree()
{
tree *q[100];
int front,rear;
int a;
tree *root,*s;
root=NULL;
front=1;rear=0;
scanf(%d,a);
while(a!=00)
{
if(a!= )
{
s=NULL;
s=(tree*)malloc(sizeof(tree));
s-data=a;
s-LChild=NULL;
s-RChild=NULL;
rear++;
}
q[rear]=s;
if(rear==1)
root=s;
else
{
if(sq[front])
{
if(rear%2==0)
q[front]-LChild=s;
else
q[front]-RChild=s;
}
if(rear%2==1)
front++;
}
scanf(%d,a);
}
return(root);
}
void PreOrder(tree *root)
{
if(root!=NULL)
{
printf(%d,root-data);
PreOrder(root-LChild);
PreOrder(root-RChild);
}
}
main()
{
tree *bt;
bt=creatree();
PreOrder(bt);
}
实验运行结果
实验
显示全部