


- 度:指的是结点所拥有的子树的个数
- 叶子:度为0的结点成为叶子
- 非终端结点:如:B,C,E
- 双亲:指的是一个结点。如:G的双亲结点是A
- 兄弟:E和F叫兄弟。
- 高度:结点 到达 最长叶子结点的边数长度如A:3,D:2,I:0
- 深度:从根结点到当前结点的边数长度。如D的深度(A到D的边数长度)为:1
二.二叉树
每个结点 最多只有两个 子树 分左子树和右子树的,不能随便交叉




- 左斜树 右斜树

- (对称)所有的分支结点都存在 左右子树,且所有叶子都在同一层级上

- 满二叉树一定是完全二叉树
- 按照程序编号顺序(编号是连续的)来的



二叉树的顺序存储结构分析



- 没有值的地方赋值为空

总结:
存储完全二叉树的时候 采用顺序存储,其他的用链式存储
三.代码实现:


1.初始化

2.(创建一个二叉树)插入

3.清空
它们两个一个性质,直接改个名字即可.清空和初始化都是空赋值nil

4.二叉树判断为空

5.二叉树深度
- 根结点到最后一个叶子结点的最长路径
- powl:2的j次方

6.处于e位置上结点值


结点的左孩子/右孩子,双亲结点
二叉树的遍历
- 访问(一次)
- 秩序

前序遍历


中序遍历
- 左中右


后序遍历
- 左右中


层序遍历


二叉树的链式存储

初始化


构建二叉树

创建二叉树

二叉树遍历
- 先序遍历

- 中序遍历

- 后序遍历

判断二叉树为空

二叉树的深度
