二叉树的建立
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
相关文章推荐
- JAVA平台
- RecyclerView完全解析
- Think in Java反刍笔记(1)---对象是什么
- lua一些容易注意点
- SpringMVC基础-@ModelAttribute注解&PUT请求方式修改数据
- 更新SDK后出现项目报错
- java工程师成神之路
- 动态添加定时任务-quartz定时器
- iOS 中三种定时器的用法NSTimer、CADisplayLink、GCD
- Android基于AudioManager、PhoneStateListener实现设置黑名单功能
- Linux下查看CPU型号,内存大小,硬盘空间命令
- 关于Android的浅杀
- FileWriter 写入文本不换行的问题
- 2016.01.27-2016.01.28回顾
- java web中的编码问题
- 怎样进行正面思考
- iPhone6的CSS3媒体查询
- D触发器
- 如何打造一款成功的产品
- 手势的3个容易混淆的属性 cancelsTouchesInView/delaysTouchesBegan/delaysTouchesEnded