写在前面的话:二叉树是棵令人蛋疼的树
二叉树基本定义
二叉树是每个结点最多有两个子树的树结构。子树通常被称作“左子树” “右子树”如下图
结点有两个以上的数被称作一般树 如下图
树结构的 高度 深度 层数 表示如下图
度:节点所拥有的子数
叶子:度为0的节点称为叶子节点活终端节点
非终端节点
双亲节点:当前节点的上一个节点
兄弟节点:同属于一个的双亲节点的节点为兄弟接地那
高度:当前节点到叶子节点最长路径的边数 从0开始数
深度:从根节点到当前节点
二叉树基本概念
完全二叉树
完全二叉树——若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树
满二叉树
除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树,满二叉树肯定是完全二叉树,满二叉树的每一个结点都有左子树和右子树
二叉树特性
- 二叉树每个结点至多只有2颗子树(二叉树中不存在度大于2的结点).所以二叉树中不存在大于2的结点.注意:不是只有2个子树,而是最多只有.如果二叉树中没有子树或者只有一颗树是可以的.
- 二叉树的子树有左右之分,其次序不能任意颠倒.类似:就像人的双手,双脚.有顺序之分
- 即使只有一棵树,也需要区分是左子树还是右子树.类似:就像你在生活中,摔伤了手伤的是左手还是右手,对你的生活影响都是完全不同的.
- 对一颗具有n个结点的二叉树按层序编号,如果编号为i(1=< i <= n)的结点与同样深度的满二叉树中编号为i的结点二叉树中位置完全相同.则这颗二叉树称为完全二叉树.
- 首先"完全"和"满"的差异,满二叉树一定是一个完全二叉树不一定是满的.
- 完全二叉树的所有结点和同样深度的满二叉树,它们按照层序编号相同的结点一一对应.这里有一个关键
- 同样结点数的二叉树,完全二叉树的深度最小
二叉树性质
1.性质1:在二叉树的第i层上最多有2的(i-)次方个结点
2.性质2:深度为K的二叉树最多有2的K次方-1个结点(K>=1)
3.性质3:对于任何一颗二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0 =n2 + 1;
4.性质4:具有n个结点的完全二叉树深度为(log2(n))+1
二叉树的遍历
二叉树没有相应的顺序关系
前序遍历
中序遍历
后序遍历
层序遍历