C#实现Huffman编码和解码

 
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. namespace StringCompresser
  7. {
  8.     public class Huffman
  9.     {
  10.         //char and its bitarray
  11.         public Dictionary<char, BitArray> HuffmanCode = null;
  12.         //Huffman tree
  13.         public Node[] HuffmanTree = null;
  14.         //huffman tree node
  15.         internal struct Node
  16.         {
  17.             internal char character;
  18.             internal int weight;
  19.             internal int parent;
  20.             internal int lchild;
  21.             internal int rchild;
  22.         }
  23.         public Huffman(char[] charArray, int[] weight)
  24.         {
  25.             if (weight == null || weight.Length == 0 
  26.                 || charArray == null || charArray.Length == 0
  27.                 || weight.Length != charArray.Length)
  28.                 return;
  29.             HuffmanCode = new Dictionary<char, BitArray>();
  30.             //build huffman tree
  31.             int totalNodeNum = weight.Length * 2 - 1;
  32.             HuffmanTree = new Node[t
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值