资源简介
1、从终端读入要编码的字符串,对所输入的字符串进行频率统计并建立哈夫曼树。
2、输出每个字符的编码。
3、根据已有的各个字符的编码,输入一段正确的电文,然后对输入的电文进行译码。
代码片段和文件信息
/**************************************************
实验六 哈夫曼编码实现
1、 从终端读入要编码的字符串,对所输入的字符串进行频率统计并建立哈夫曼树。
2、 输出每个字符的编码。
3、 根据已有的各个字符的编码,输入一段正确的电文,然后对输入的电文进行译码。
****************************************************/
#include
#include
#include
#define NULL 0
#define StackSize 20
#define TRUE 1
#define FALSE 0
typedef struct{
char chr;
unsigned int weight;
char *encode;
}Data;
typedef struct{
char c;
unsigned int w;
unsigned int parent;
unsigned int lchild;
unsigned int rchild;
}HTNode*HuffmanTree;
int GetData(Data** ppdint* n){
int i=0;
int m=0;
char c=0;
Data* pd=NULL;
L: while((c=getchar())!=‘\n‘){
for(i=0;i if(c==pd[i].chr)
{pd[i].weight++;goto L;}
}/*for*/
if(i==m){
pd=(Data*)realloc(pd(m+1)*sizeof(Data));
if(!pd) return FALSE;
pd[m].chr=c;
pd[m].weight=1;;
pd[m].encode=NULL;
m++;
}/*if*/
}/*while*/
*n=m;
*ppd=pd;
return TRUE;
}
void Select(HuffmanTree HTint nint *s1int *s2){
int i=1s=0t=0;
unsigned int value=65535;
for(;i<=n;i++) if(HT[i].w value=65535;
for(i=1;i<=n;i++) if(HT[i].w *s1=s;*s2=t;
}
int BuildTree(HuffmanTree* p_HTData* pdint n){
int m=0i=0;
int s1=0s2=0;
HuffmanTree HT;
m=2*n-1;
if(n<=1) return FALSE;
HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode));
if(!HT) return FALSE;
for(i=1;i<=n;i++) {HT[i].c=pd[i-1].chr;HT[i].w=pd[i-1].weight;HT[i].parent=0;HT[i].lchild=0;HT[i].rchild=0;};
for(;i<=m;i++) {HT[i].c=0;HT[i].w=0;HT[i].parent=0;HT[
- 上一篇:模糊控制C++测试代码
- 下一篇:C语言实现二叉树的创建、插入、删除、遍历等操作
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 利用C++哈希表的方法实现电话号码查
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
评论
共有 条评论