红黑树:平衡2X 哈夫曼树:最优2X

红黑树 :TreeSet、TreeMap

哈夫曼树

1. 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点); 2. 在森林中选出根结点的权值最小的两棵树进行合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和; 3. 从森林中删除选取的两棵树,并将新树加入森林; 4. 重复(02)、(03)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树

2.1 前序遍历 若二叉树非空,则执行以下操作: (01) 访问根结点; (02) 先序遍历左子树; (03) 先序遍历右子树。 2.2 中序遍历 若二叉树非空,则执行以下操作: (01) 中序遍历左子树; (02) 访问根结点; (03) 中序遍历右子树。 2.3 后序遍历 若二叉树非空,则执行以下操作: (01) 后序遍历左子树; (02) 后序遍历右子...

(01) 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (02) 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; (03) 任意节点的左、右子树也分别为二叉查找树。 (04) 没有键值相等的节点

树形结构_红黑树:平衡2X 哈夫曼树:最优2X的更多相关文章

  1. JDK1.8 HashMap$TreeNode.balanceInsertion 红黑树平衡插入

    红黑树介绍 1.节点是红色或黑色. 2.根节点是黑色. 3.每个叶子节点都是黑色的空节点(NIL节点). 4 每个红色节点的两个子节点都是黑色.(从每个叶子到根的所有路径上不能有两个连续的红色节点) ...

  2. 【algo&ds】【吐血整理】4.树和二叉树、完全二叉树、满二叉树、二叉查找树、平衡二叉树、堆、哈夫曼树、B树、字典树、红黑树、跳表、散列表

    本博客内容耗时4天整理,如果需要转载,请注明出处,谢谢. 1.树 1.1树的定义 在计算机科学中,树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结 ...

  3. CF 463A && 463B 贪心 && 463C 霍夫曼树 && 463D 树形dp && 463E 线段树

    http://codeforces.com/contest/462 A:Appleman and Easy Task 要求是否全部的字符都挨着偶数个'o' #include <cstdio> ...

  4. 红黑树(RB-tree)比AVL树的优势在哪?

    1. 如果插入一个node引起了树的不平衡,AVL和RB-Tree都是最多只需要2次旋转操作,即两者都是O(1):但是在删除node引起树的不平衡时,最坏情况下,AVL需要维护从被删node到root ...

  5. 有序的数据结构中:内存操作红黑树快,磁盘操作b+树快

    红黑树常用于存储内存中的有序数据,增删很快,b+树常用于文件系统和数据库索引,因为b树的子节点大于红黑树,红黑树只能有2个子节点,b树子节点大于2,子节点树多这一特点保证了存储相同大小的数据,树的高度 ...

  6. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_04 数据结构_5_数据结构_红黑树

    生活中的树和计算机中的树.计算机的树是倒着的

  7. C++(STL)&&树-堆结构练习——合并果子之哈夫曼树

    题目题解:http://blog.csdn.net/xu12110501127/article/details/9199335 有关博客:http://www.360doc.com/content/1 ...

  8. Atitit 常见的树形结构 红黑树  二叉树   B树 B+树  Trie树 attilax理解与总结

    Atitit 常见的树形结构 红黑树  二叉树   B树 B+树  Trie树 attilax理解与总结 1.1. 树形结构-- 一对多的关系1 1.2. 树的相关术语: 1 1.3. 常见的树形结构 ...

  9. 二叉搜索树、AVL平衡二叉搜索树、红黑树、多路查找树

    1.二叉搜索树 1.1定义 是一棵二叉树,每个节点一定大于等于其左子树中每一个节点,小于等于其右子树每一个节点 1.2插入节点 从根节点开始向下找到合适的位置插入成为叶子结点即可:在向下遍历时,如果要 ...

随机推荐

  1. xshell突出显示集

    xshell突出显示集(参考mobaxterm,直接拷贝过来不行,应该是xshell对正则表达式的支持不够好): Underline: \b(http(s)?://[A-Za-z0-9_./& ...

  2. WinDbg中Check for invalid symbols or bad syntax(断点设置)解决办法

    基础知识 bp 程序运行过程中下断点 bu 程序未加载之前下断点 bl  列出所有断点 bc  清除断点 今天在调试驱动的时候 发现下好断点后 无法调试 WinDbg显示 kd> g Break ...

  3. hive调用MapReduce之后遇到kill command之后卡住或者一直开在MapReduce之前

    https://blog.csdn.net/weixin_42158422/article/details/88876943

  4. js 为什么计算结果老是出现NaN

    js 为什么计算结果老是出现NaN 可能原因: 1.操作的两个数,类型不一致 2.有一个值为NaN,计算後为NaN 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函 ...

  5. PAT_A1084#Broken Keyboard

    Source: PAT A1084 Broken Keyboard (20 分) Description: On a broken keyboard, some of the keys are wor ...

  6. 引入scss(@import)和其中易错点

    1.引入文件方式 @import 'url'; ./ :当前目录 ../ :上级目录 src/api/styles: 绝对路径 2.一般在main.js中引用当做全局样式 import 'styles ...

  7. 20140729 while((*pa++=*pb++)!='\0') 合并数组代码 C++类型转换关键字 封装 多态 继承

    1.关于while((*pa++=*pb++)!='\0')和while((*pa=*pb)!='\0') {pa++;pb++;}的不同 #include<stdio.h> void m ...

  8. python:Django 简介。

    Django是基Python的重要WEB框架. 1.安装Django Web框架 安装  pip 安装 在命令行模式 执行  [pip install django == 2.0]或者 [pip in ...

  9. 绝对 "牛X" 的代码注释,喜欢就拿去用!

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:Blankj https://github.com/Blankj/awesome-comment 写在前面的话:一时兴 ...

  10. 高效IO之File文件操作类的基础用法(二)

    更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 前言 众所周知Java提供File类,让我们对文件进行操作,下面就来简单整理了一 ...