数据结构 您所在的位置:网站首页 哈夫曼编码的算法 数据结构

数据结构

2024-07-17 05:33| 来源: 网络整理| 查看: 265

 戳这里还有其他数据结构的题目噢

https://blog.csdn.net/qq_45724947/article/details/115625130?spm=1001.2014.3001.5501

哈夫曼编/译码器。要求根据给定的权值,构建哈夫曼树,并实现哈夫曼编码和译码。

直接上代码: 

转自https://blog.csdn.net/qq_37787333/article/details/89160075

#include #include #define maxval 10000.0 #define maxsize 100 //哈夫曼编码的最大位数 typedef struct { char ch;//值 float weight;//权重 int lchild,rchild,parent; }hufmtree; typedef struct { char bits[10]; //位串 int start; //编码在位串中的起始位置 char ch; //字符 }codetype; void huffman(hufmtree tree[],int n,int m);//建立哈夫曼树 void huffmancode(codetype code[],hufmtree tree[],int n);//根据哈夫曼树求出哈夫曼编码 void decode(hufmtree tree[],int m);//依次读入电文,根据哈夫曼树译码 int main() { int choice=0; int n,m; int i,j;//循环变量 hufmtree *tree;//哈夫曼树 codetype *code;//编码译码 printf("请输入元素个数:"); scanf("%d",&n); m=2*n-1; tree=(hufmtree *)malloc(sizeof(hufmtree)*m); code=(codetype *)malloc(sizeof(codetype)*n); huffman(tree,n,m);//建立哈夫曼树 printf("哈夫曼树已成功建立!\n"); huffmancode(code,tree,n);//根据哈夫曼树求出哈夫曼编码 printf("输出哈夫曼编码\n"); for(i = 0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有