zoukankan      html  css  js  c++  java
  • 二叉搜索树、平衡二叉树、红黑树

    一、二叉搜索树特点

      对于树中的每个节点X,它的左子树中所有关键字的值小于X的关键字值,而它的右子树中所有关键字值都大于X的关键字值

    根据这个特性,对一个二叉树进行中序遍历,如果时单调递增的,则可以说明这个数二叉搜索树

    重点操作有插入、删除

    插入:

    1、从根节点开始,遇键值较大则向左走,与键值较小则向右走,直至尾部,即插入点

    删除:

    1、如果存在于叶子节点,直接删除即可

    2、删除的节点只有一个子节点,则将子节点连至父节点的即可(可以视为将子节点替换掉删除节点的位置)

    3、删除的节点有两个子节点,这时需将右子树的最小值替换掉删除节点即可,最小节点可通过删除节点右子树一直向左走到底获得,

    二、平衡二叉搜索树

    发生的情况:当对二叉树进行插入或者删除的时候,有可能造成二叉搜索树失去平衡,造成搜寻效率低落的情况。

    插入:

    当向二叉搜索树插入一个节点分为ie四种情况

    1、插入节点位于X的左子节点的左子树--左左

    2、插入节点位于X的左子节点的右子树--左右

    3、插入节点位于X的右子节点的左子树--右左

    4、插入节点位于X的右子节点的右子树--右右

    情况1、4彼此对称,称为外侧插入,采用单旋转操作即可调整

    情况2、3彼此对成,称为内侧插入,可以采用双旋转(执行两次单旋转)操作调整

    三、红黑树

    红黑树不仅时一个二叉搜索树,还必须满足以下规则

    1、每个节点不是红色就是黑色

    2、根节点一定为黑色

    3、如果节点三红色,则子节点必须为黑色

    4、任一节点至NULL(树尾端)的任何路径,所含之黑节点树必须相同。

  • 相关阅读:
    阿诺尔德给5至15岁孩子出的数学题
    上手机器学习,从搞懂这十大经典算法开始
    海报模板
    测度论--长度是怎样炼成的[zz]
    柯西不是你
    搭建Web部署环境
    搭建jdk环境
    Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法
    Web开发技术选型之Java与PHP
    从java到web前端再到php,一路走来的小总结
  • 原文地址:https://www.cnblogs.com/socks/p/12768003.html
Copyright © 2011-2022 走看看