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(树尾端)的任何路径,所含之黑节点树必须相同。

  • 相关阅读:
    国内外常用学术论文搜索网站
    2019年全国高校sql数据库
    Flask无法访问(127.0.0.1:5000)的问题解决方法
    Windows终端命令行工具Cmder
    JQuery实现密码可见不可见
    区块链最大的难题及其解决方案
    python 下载 进度条
    centos 用docker 运行 cypress
    通过 centos Nginx 查看html (为后续 服务器生成html 方便访问)
    odoo 分享 PostgreSQL 语句2
  • 原文地址:https://www.cnblogs.com/socks/p/12768003.html
Copyright © 2011-2022 走看看