您的位置:首页 > 其它

二叉树的建立

2016-01-29 11:01 239 查看

二叉树、


与链表类似,“二叉树”也是用一组不连续的存储空间来存储一组同类型的元素,并用指针将这些存储空间连接起来,每个存储空间被称作树上的一个结点。不同的是,二叉树的指针表示结点之间的”父——子“关系,从而形成一种非线性的数据存储结构。他看起来像一棵倒立的树。

二叉树可以用来存储任何类型的元素,每个结点存储一个元素的值,并有两个指针:左指针和右指针。两个结点A和B,如果A有一个指针指向B,则将A称为B的“父结点”、B称作A的“子结点”。


相关概念、


*叶子结点:一个节点如果没有任何子结点,则将其称作一个叶子结点,或者简称叶子。

*根结点:一棵二叉树中有唯一的一个结点,不是其他任何节点的子结点,这个结点称作二叉树的根结点,或则简称根。根节点位于二叉树的最顶层;

*结点层数:根所在的层数为0,其他结点的层数是父结点所在的层数加1.

*二叉树的深度:叶子结点所在的最大层数称作树的深度。

*子树:假设B是A的子结点,从B出发能达到的全部结点构成一棵以B为根的树,称为A的一棵子树。如果B是A的左子结点,则该子树称为A的左子树。


二叉树的建立、


从一个文本中读入一组数据,用一棵二叉树存储这些整数。读入的第一个整数存储在根节点上。以后美读入一个整数时,向root代表的二叉树上插入一个新的结点,存储所读入的整数。最终的二叉树上,任取一个结点A:A的值不小于它左子树上的任何值、它的右子树上的每个值都大于A的值。下面的程序演示了建立这样一棵二叉树的过程。

#include<stdio.h>

int main()
{
FILE *fp;
int n, a[100];
scanf("%d", &n);
for(int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
fp = fopen("f:\\wakawaka", "wb");
for(int i = 0; i < n; i++) {
fprintf(fp, "%d ", a[i]);
}
fclose(fp);
return 0;
}


View Code

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: