您当前的位置: 首页 >  Java

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

java数据结构和算法——赫夫曼解码

小志的博客 发布时间:2020-09-27 22:27:43 ,浏览量:0

一、赫夫曼解码的思路
  • 赫夫曼编码压缩后的字节数组先转成赫夫曼编码对应的二进制的字符串
  • 把字符串按照指定的赫夫曼编码进行解码,解析成原来的字符串
二、赫夫曼解码的代码示例

示例需求:先把字符串进行赫夫曼编码,在把赫夫曼编码的结果进行赫夫曼解码。

注:测试类中用到的赫夫曼编码工具类 参考此链接 https://blog.csdn.net/li1325169021/article/details/108720523

1、创建赫夫曼解码 工具类

package com.rf.springboot01.dataStructure.huffmanDecode;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @description:  赫夫曼解码 工具类
 * @author: xiaozhi
 * @create: 2020-09-24 22:24
 */
public class huffmanDecodeUtil {

    /** 
    * @Description: 完成对赫夫曼编码的解码
    * @Param:   huffmanCodes 赫夫曼编码表 map
     *           huffmanBytes 赫夫曼编码得到的字节数组
    * @Author: xz  
    * @return: 
    * @Date: 2020/9/24 22:26  
    */
    public static byte[] decode(Map huffmanCodes, byte[] huffmanBytes) {
        //1一、 将赫夫曼编码得到的字节数组 转换成对应的 二进制的字符串 , 形式 1010100010111...
        StringBuilder stringBuilder = new StringBuilder();
        //将byte数组转成二进制的字符串
        for(int i = 0; i 100 100->a
        }
        //三、创建要给集合,存放byte
        List list = new ArrayList();
        // i可以理解成就是索引,扫描 stringBuilder
        for(int  i = 0; i             
关注
打赏
1661269038
查看更多评论
0.0503s