【C语言】数据结构与算法哈夫曼树

您所在的位置:网站首页 数据结构B树实验报告 【C语言】数据结构与算法哈夫曼树

【C语言】数据结构与算法哈夫曼树

2023-07-08 03:55| 来源: 网络整理| 查看: 265

当年数据结构与算法的实验报告,难了我好几天,现在分享给华理的学弟学妹们吧。没有注释,但是确实是我自己写的。

#include #include #include typedef struct {     int weight;     int parent;     int Lchild;     int Rchild; }HTNode,*HuffmanTree; void select(HuffmanTree *ht,int n,int *s1,int *s2) {     int i,min1=100,min2=100;     for(i=1,*s1=0,*s2=0;i             if((*ht)[i].weight                 *s2=i;                 min2=(*ht)[i].weight;             }         }     } } void CrtHuffmanTree(HuffmanTree *ht,char ***hc,int *w,int n) {     int m,i,s1,s2,start,c,p;char *cd;     m=2*n-1;     *ht=(HuffmanTree)malloc((m+1)*sizeof(HTNode));     for(i=1;i         start=n-1;         for(c=i,p=(*ht)[i].parent;p!=0;c=p,p=(*ht)[p].parent)         {             if((*ht)[p].Lchild==c)cd[--start]='0';//左分支标0             else cd[--start]='1';//右分支标1         }         (*hc)[i]=(char*)malloc((n-start)*sizeof(char));         strcpy((*hc)[i],&cd[start]);     }     free(cd); } int main() {     HuffmanTree *ht;char **hc;int a,i;     int w[10];     printf("请输入叶子节点个数:");     scanf("%d",&a);     for(i=1;i         printf("第%d个叶子节点的哈夫曼编码为:",i);         puts(hc[i]);     }     return 0; }  



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3