小蚂蚁学习数据结构(32)——二叉排序树的概念

二叉排序树,定义:spa

    1,若左子树非空,则左子树上全部节点的关键字均小于根节点关键字。.net

    2,若右子树非空,则右子树上全部节点的关键字均大于根节点关键字。指针

    3,左右子树自己又是一颗二叉树。blog

    定义也是一个递归定义。排序

二叉排序树的特色:递归

    中序遍历二叉排序树,能够获得关键字序列是一个递增的有序序列。ci

二叉排序树查找思路:get

    1,若是二叉排序树为空,则查找失败。博客

    2,若是key等于当前根节点,则查找成功。it

    3,若是key小于当前根节点的值,在继续在根的左子树中查找。

    4,若是key大于当前根节点的值,在继续在根的右子树中查找。

二叉排序树的代码实现:

    (略),哈哈哈,今天是除夕,在家里心不静,就不写了,感受也不难,之后有时间再写。

二叉排序树的查找:

    在二叉排序树上的平均查找长度与二叉树的形态有关。

    当树的形态比较均衡时,树的高度较小,平均查找长度也较小。

二叉排序树的插入:

    1,若是二叉排序树为空,则待插节点做为根节点插入空树中。

    2,若是待插入的关键字值和根节点关键字值相等,则无需插入。

    3,若是插入的关键字小于根节点的数值,则插入到左子树中。

    4,若是插入的关键字大于根节点的数值,则插入到右子树中。

    5,如此进行下去,固然,若是该数值已经存在就再也不插入同一个数值。

二叉排序树的删除:

    1,删除叶子节点,很简单,直接删除,父节点的指针域赋予NULL

    2,删除单分支节点,将父节点与孩子节点直接相连

    3,删除双分子节点,用它的中序后继替换它,并使整棵树保持BST性质。

二叉排序树的查找分析:

    刚才也提到了,这个和二叉排序树的排列生成顺序有关,若是这个二叉排序树的形态是一条直线的话,这和顺序查找没有什么不一样,为了防止这种状况的产生,就出来了一个平衡二叉树的概念。

平衡二叉树:

    略,立刻晚会就开始了,PS:祝你们新年快乐,万事如意。 (*^-^*)


    学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog

相关文章
相关标签/搜索