哈夫曼编码详解(Java实现,详细代码及解析)

哈夫曼编码过程以及实例:由上篇文章哈夫曼树与哈夫曼编码原理分析,设置一个字符串“aasdf ghjkd hsgaf sfdga ahsjh g”统计一下各字符出现的频率k,1 f,2 j,2 d,3 h,4 a,5 s,4 g,4字符kfjdhasg频次122345441.为以上每一个字符创建一个二叉树,并将其出现的频次存储在节点中,节点的数据结构定义为Node:public class Node { //只存储两个值 0,1 pri
摘要由CSDN通过智能技术生成

哈夫曼编码过程以及实例:
由上篇文章哈夫曼树与哈夫曼编码原理分析,设置一个字符串“aasdf ghjkd hsgaf sfdga ahsjh g”
统计一下各字符出现的频率k,1 f,2 j,2 d,3 h,4 a,5 s,4 g,4

字符 k f j d h a s g
频次 1 2 2 3 4 5 4 4

1.为以上每一个字符创建一个二叉树,并将其出现的频次存储在节点中,节点的数据结构定义为Node:

public class Node {
   
	//只存储两个值 0,1
    private String ch;
    //存储字符出现的频率次数
    private int num;
    //左节点
    private Node left;
    //右节点
    private Node right;
    public Node(String c, int n){
   
        ch = c;
        num = n;
    }
    public Node(){
   
    }
    public String getCh() {
   
        return ch;
    }
    public void setCh(String ch) {
   
        this.ch = ch;
    }
    public int getNum() {
   
        return num;
    }
    public void setNum(int num) {
   
        this.num = num;
    }
    public Node getLeft() {
   
        return left;
    }
    public void setLeft(Node left) {
   
        this.left = left;
    }
    public Node getRight() {
   
        return right;
    }
    public void setRight(Node right) {
   
        this.right = right;
    }
    @Override
    public String toString() {
   
        return "Node{" +
                "ch='" + ch + '\'' +
                ", num=" + num +
                ", left=" + left +
                ", right=" + right +
                '}';
    }
}

2.代

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值