![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构 C语言版
码到成功-
脚踏实地,一步一个脚印
展开
-
赫夫曼编码
算法导论--赫夫曼编码2017年06月01日 11:05:09 夜空霓虹 阅读数:178版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhang_xiaomeng/article/details/72828441贪心算法的原理: 赫夫曼编码可以很有效地压缩数据:通常可以节省20%~90%的空间。 根据每个字符的出现频率...转载 2018-11-13 12:36:11 · 1675 阅读 · 1 评论 -
赫夫曼(赫夫曼树、最优树、赫夫曼编码)
赫夫曼树,别名“哈夫曼树”、“最优树”以及“最优二叉树”。学习哈夫曼树之前,首先要了解几个名词。哈夫曼树相关的几个名词路径:在一棵树中,一个结点到另一个结点之间的通路,称为路径。图 1 中,从根结点到结点 a 之间的通路就是一条路径。路径长度:在一条路径中,每经过一个结点,路径长度都要加 1 。例如在一棵树中,规定根结点所在层数为1层,那么从根结点到第 i 层结点的路径长度为 i - 1...转载 2018-11-13 12:34:13 · 465 阅读 · 0 评论 -
B树,B-树和B+树的区别
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,...转载 2018-11-22 16:01:42 · 17949 阅读 · 7 评论 -
链表的应用——多重链表
多重链表 1、什么是多重链表,就是链表里的结点可能隶属多个链表,最常见的就是十字链表,每个结点都有多个指针域,对应于多个链表嘛,但是反过来说,拥有多个指针域的结点的链表就是多重链表是不准确的,因为循环链表的结点都有2个指针域一个前驱一个后继,但是它就不是多重链表 2、多重链表有什么用途呢,比如存储树或者图等等复杂数据结构,所以学好各类线性表的操作是很有必要的,因为之后的很多复杂数据结构的存...转载 2018-11-26 14:44:18 · 7815 阅读 · 0 评论 -
解决hash冲突的三个方法
目录开放定址法 线性探测再散列 二次探测再散列 伪随机探测再散列 再哈希法 链地址法 建立公共溢出区 优缺点 开放散列(open hashing)/ 拉链法(针对桶链结构) 封闭散列(closed hashing)/ 开放定址法 通过构造性能良好的哈希函数,可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是哈希法的另一个关键问题。创建哈希表和查找哈希表都会...转载 2018-11-27 11:15:34 · 245 阅读 · 0 评论