线索二叉树,搜索二叉树,AVL二叉树,满二叉树,完全二叉树,平衡二叉树

 

二叉树的遍历本质上是将一个复杂的非线性结构转换为线性结构,使每个结点都有了唯一前驱和后继(第一个结点无前驱,最后一个结点无后继)。对于二叉树的一个结点,查找其左右子女是方便的,其前驱后继只有在遍历中得到。为了容易找到前驱和后继,有两种方法。一是在结点结构中增加向前和向后的指针fwd和bkd,这种方法增加了存储开销,不可取;二是利用二叉树的空链指针。

 

二叉查找树(又:二叉搜索树,二叉排序树)

它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树

《线索二叉树,搜索二叉树,AVL二叉树,满二叉树,完全二叉树,平衡二叉树》

 

AVl 树:

AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。

线索二叉树:

对于n个结点的二叉树,在二叉链存储结构中有n+1个空链域,利用这些空链域存放在某种遍历次序下该结点的前驱结点和后继结点的指针,这些指针称为线索,加上线索的二叉树称为线索二叉树。

《线索二叉树,搜索二叉树,AVL二叉树,满二叉树,完全二叉树,平衡二叉树》

《线索二叉树,搜索二叉树,AVL二叉树,满二叉树,完全二叉树,平衡二叉树》

一、二叉树

1、二叉树的概念

二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree),其次序不能任意颠倒。

2、性质

(1)若二叉树的层次从0开始,则在二叉树的第i层至多有2^i个结点(i>=0);

(2)高度为k的二叉树最多有2^(k+1) – 1个结点(k>=-1)。 (空树的高度为-1);

(3)对任何一棵二叉树,如果其叶子结点(度为0)数为m, 度为2的结点数为n, 则m = n + 1。

二、几种特殊的二叉树

1、满二叉树

所有叶结点同处于最底层(非底层结点均是内部结点),一个深度为k(>=-1)且有2^(k+1) – 1个结点

 《线索二叉树,搜索二叉树,AVL二叉树,满二叉树,完全二叉树,平衡二叉树》

2、完全二叉树

叶结点只能出现在最底层的两层,且最底层叶结点均处于次底层叶结点的左侧。规模为n的完全二叉树,高度为

 《线索二叉树,搜索二叉树,AVL二叉树,满二叉树,完全二叉树,平衡二叉树》

3、平衡二叉树

 平衡二叉树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树AVL替罪羊树Treap伸展树等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数列,可以参考Fibonacci(斐波那契)数列,1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子树的节点数量。(百度百科)

《线索二叉树,搜索二叉树,AVL二叉树,满二叉树,完全二叉树,平衡二叉树》

对于平衡二叉树要特别注意的是,不要求非叶节点都有两个子结点,仅要求两个子树的高度差的绝对值不超过1,或者为空树。

    原文作者:满二叉树
    原文地址: https://blog.csdn.net/qq_38998213/article/details/83059096
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞