数据结构
wj-1024
【日积跬步】
展开
-
【算法】java实现用哈夫曼编码对文件进行压缩和解压
【算法】java实现用哈夫曼编码对文件进行压缩和解压1、什么是哈夫曼编码?2、哈夫曼编码如何对信息进行压缩?3、哈夫曼编码如何生成4、java实现用哈夫曼编码对文件进行压缩和解压聊哈夫曼编码前建议先了解一下 【数据结构】哈夫曼树1、什么是哈夫曼编码?哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就原创 2020-07-21 16:23:03 · 2689 阅读 · 2 评论 -
【数据结构】哈夫曼树
【数据结构】哈夫曼树1、基本概念2、什么是哈夫曼树?3、哈夫曼树构建图解4、代码实现哈夫曼树1、基本概念路径:一棵树中,从一个结点到另一个结点所经过的所有结点,被我们称为两个结点之间的路径,如图:从根节点1到叶子节点4的路径:1,2,4路径长度:在一棵树中,从一个结点到另一个结点所经过的“边”的数量,被我们称为两个结点之间的路径长度,还是上图,根节点1到叶子结点4的路径经过了2个边,也就是说,若规定根节点的层数为1,则从根节点到N层的结点的的路径长度为:N-1结点的带权路径长度:树的原创 2020-07-20 14:52:59 · 2515 阅读 · 0 评论 -
【算法】排序算法(基数、归并、快速、希尔、插入、选择、冒泡、堆)
【算法】排序算法(基数、归并、快速、希尔、插入、选择、冒泡)1、基数排序1.1 图解1.2 代码实现2、归并排序2.1 图解2.2 代码实现3、快速排序3.1 图解3.2 代码实现4、希尔排序4.1 图解4.2 代码实现5、插入排序5.1 图解5.2 代码实现6、选择排序6.1 代码实现7、冒泡排序7.1 代码实现8、 常用排序算法对比1、基数排序基数排序(radix sort)又称桶排序(...原创 2020-03-29 22:00:30 · 176 阅读 · 0 评论 -
【算法】用栈实现逆波兰计算器
逆波兰计算器就是使用逆波兰表达式实现的计算器1.什么是逆波兰表达式逆波兰表达式又叫后缀表达式那什么又叫后缀表达式?举例说明:(3+4)×5-6 就是中缀表达式,其对应的后缀表达式就是3 4 + 5 × 6 -有中缀有后缀就有前缀,(3+4)×5-6的前缀表达式就是:3 4 + 5 × 6 –简单来说,中缀表达式就是我们常见的计算表达式,对我们人类很友好,但对计算机不友好,相反,后缀表...原创 2020-03-01 13:49:05 · 201 阅读 · 0 评论 -
【Java数据结构】使用数组模拟队列
1.队列队列是一个有序列表,可以用数组或是链表来实现。遵循先进先出的原则。示意图:代码实现:Demo1:/** * 数组模拟队列 * * @author wangjie * @version V1.0 * @date 2019/12/23 */public class ArrayQueueDemo { public static void main(St...原创 2019-12-23 21:22:33 · 2248 阅读 · 0 评论 -
【Java数据结构】稀疏数组
1.稀疏数组当一个数组中大部分元素为0,或者为同一个值的时候,可以用稀疏数组来保存该数组。稀疏数组的处理方法:1.记录数组一共有几行几列,有多少个不同的值2.把具有不同元素的行列及值记录在一个小规模数组中,从而缩小程序规模。2,代码实现/** * 稀疏数组 * * @author wangjie * @version V1.0 * @date 2019/12/...原创 2019-12-19 11:10:02 · 2371 阅读 · 0 评论