资源简介
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语言实现二叉树的创建、插入、删除
- 图书管理系统 C语言设计源代码和实验
- 用C语言实现SHA-1算法
- C语言实现拉格朗日插值
- C语言 斗地主 游戏
- Linux下C语言实现的FTP系统
- C语言连接Access数据库
- 常用加密算法AES、RSA、DES、MD5、TEA、
- DES算法加解密实现 C语言
- linux下FTP服务器与客户端的C语言实现
- c语言程序设计案例教程 廖湖声 第二
- 用C语言实现八数码问题的宽度优先搜
- 数据结构表达式求值,c语言版,能计
- c语言井字棋源码
- C语言课程设计_学生选修课系统
- C语言版的职工管理系统课设
- 银行管理系统——数据结构C
- Linux操作系统C语言编程入门pd
- c语言银行管理系统
- c语言实现的对任意长度的字符串加解
- 《C语言程序设计实验指导》颜晖,张
- c语言拓扑排序算法
- 人机对战智能五子棋 C语言版
- 严蔚敏.吴伟民等《数据结构(c语言版
- c语言 bmp图片显示
- 几种控制方法的C语言编程.
- FFT的C语言实现代码
- 常用的100个经典C语言程序
- C++数据结构与算法(第4版) 完整版
- 用C语言读写SGY格式的地震数据文件
评论
共有 条评论