二叉树定义:每个结点最多有两个子树的树结构。
满二叉树定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树
完全二叉树定义:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(满二叉树必定为完全二叉树,但完全二叉树不一定为满二叉树)
二叉树的五个重要性质:
1.二叉树的第i层最多有2^(i-1)个结点 i>=1
2.深度为K的二叉树最少有K个结点,最多有2^k-1个结点 k>=0
3.对任意一棵非空二叉树来说,叶子结点总比度为2的结点多一个,即若叶子结点为N0,度为2的结点为N2,那么N0=N2+1
4.具有N个结点的二叉树,其深度至少为(log2N)+1取整,至多为N
5.对于完全二叉树来说,设有N个结点,从根结点开始,按层序(从上到下,由左至右)编号(k=1,2,3.......N),有以下结论:
(1)若k=1,该结点为根节点,且没有父结点
(2)若2k<=n,则编号为k的结点左子结点编号为2k,否则该结点无左子结点(也无右子结点)
(3)若2k+1<=n,则编号为k的右子结点编号为2k+1,否则无右子结点
二叉树的遍历:
左子树L,根结点D,右子树R
先序遍历:DLR 124583697
中序遍历:LDR 428516937
后序遍历:LRD 485296731
层序遍历:就是一层一层来了,从上到下,从左至右,1,2,3,4,5,6.........
(事实中的二叉树左子结点数值小于父结点的数值,右子结点数值大于父结点数值)
代码实现:https://blog.csdn.net/a572463931/article/details/106116657