• 大小: 180KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-01-11
  • 语言: C/C++
  • 标签: 香农编码  C语言  

资源简介

根据香农编码,费诺编码和哈夫曼编码的最佳编码思想,运用C语言或Matlab语言任选2个给予分别实现,其中哈夫曼编码必选. 基本要求(15): 1.输入任意个数的信源符号 2.输入任意大小的概率分布(ΣPi=1) 3.哈夫曼编码给出方式选择 4. 输出编码结果 5.输出信源熵,平均码长,编码效率等 6.编程加注解 附加要求(5): 1.能实现哈夫曼多进制(元)编码(3进制) 或 2.能实现哈夫曼多重(扩展)编码(2重,信源2-3个符号)

资源截图

代码片段和文件信息

 #include 
 #include 
 #define MaxSize 100

 typedef char ElemType; 
 typedef struct
 {
     ElemType data[MaxSize];
     double weight;                 /*叶子权重,信源概率*/
     int parent;                /*父亲节点*/
     int lchild;                /*左孩子节点*/
     int rchild;               /*右孩子节点*/
 } HTNode;
 typedef struct
 {
     char cd[MaxSize];           /*存放编码用*/
     int start;
 } HCode;   

 void CreateHT(HTNode ht[]int n)                 /*构造哈夫曼树子程序*/
 {
     int ijk;
    int lnodernode;             /*节点*/
     double min1min2;
     for(i=0;i<2*n-1;i++)               /*进行2*n-1次合并*/
     ht[i].parent=ht[i].lchild=ht[i].rchild=-1;
    for(i=n;i<2*n-1;i++)
    {
         min1=min2=32767;
         lnode=rnode=-1;
         for(k=0;k<=i-1;k++)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3914  2008-12-15 18:13  郑旅军 0656061 哈夫曼编码完成版\huffman.c

     文件     213093  2008-12-15 18:50  郑旅军 0656061 哈夫曼编码完成版\huffman.exe

     文件       9488  2008-12-15 18:50  郑旅军 0656061 哈夫曼编码完成版\huffman.obj

     文件       2679  2008-12-13 20:23  郑旅军 0656061 香农编码完成版\xn.c

     文件     217182  2008-12-15 18:46  郑旅军 0656061 香农编码完成版\xn.exe

     文件       8935  2008-12-15 18:46  郑旅军 0656061 香农编码完成版\xn.obj

     目录          0  2008-12-15 18:51  郑旅军 0656061 哈夫曼编码完成版

     目录          0  2008-12-15 18:50  郑旅军 0656061 香农编码完成版

     文件     159232  2008-12-15 18:42  信息论与编码课程期中作业报告.doc

----------- ---------  ---------- -----  ----

               614523                    9


评论

共有 条评论