zoukankan      html  css  js  c++  java
  • AVL和红黑树

    平衡二叉树AVL

    特殊的二叉排序树,左右子树都是平衡二叉树,左右子树高度差绝对值不超过1,logn。

    它的存在是为了优化二叉排序树,防止一边太深。

    红黑树

    也是二叉排序树,每个节点增加一个存储为来存颜色。 

    弱平衡,AVL太严格了,红黑树旋转次数少。

    没有一条路径比其他路径长2倍,任意节点到叶节点的黑色节点数目相同。

    所有节点非红即黑,首尾黑,红节点的孩子必黑。

    两者区别

    AVL高度平衡,红黑树弱平衡;

    频繁插入删除,AVL效率下降;红黑树插入最多2次,删除最多3次。

    哈夫曼编码

    哈夫曼树:根据查找习惯建立一颗更快更合适的满二叉树,条件时每个单词出现的频率(权值)。搜索频率越高的单词越靠近树根,通过频率和节点离root的距离计算Wpl(带权路径长)=∑Li x Pi,最小化这个带权路径长得到的树就是哈夫曼树。

    哈夫曼编码也叫霍夫曼编码,无前缀编码,可变字长编码,平均长度最短。应用于数据压缩。用字符在文件中出现的频率来建立的。

    频率排序队列中,将频率最小的两个字符出队列,作为两个叶节点(值是频率),两频率之和作为父节点,然后将这个和的值加入到总的频率排序队列中。在重复上面的步骤。

    B+树

    多路搜索树,为磁盘或其他直接存储辅助设备而设计的平衡查找树。

    每个节点可以有多个孩子,按照关键字大小有序排序。

    特点:

    每个节点上的指针上限为2d而不是2d+1(d为节点的出度)

    内节点不存储data,只存储key

    叶子节点不存储指针

    红黑树旋转

    能保持二叉搜索树的性质的局部操作,左旋和右旋,通过改变某些节点的颜色和指针结构保持红黑树的性质。

  • 相关阅读:
    天文漫谈章测试题【第四章】
    天文漫谈章测试题【第三章】
    天文漫谈章测试题【第二章】
    天文漫谈-章测试题【第一章】
    天文漫谈期末考试
    《中国特色社会主义理论与实践》笔记 202001
    教育法学期末考试02MOOC
    教学法学期末考试MOOC01
    教育法学第九章单元测试MOOC
    在Linux平台上如何使用接静态库和共享库
  • 原文地址:https://www.cnblogs.com/pacino12134/p/11251325.html
Copyright © 2011-2022 走看看