资源简介
数据结构哈夫曼编码带译码功能,C语言版程序加完成版实验报告,完全可运,供大家参考。

代码片段和文件信息
#include
#include
#define MaxValue 10000
//设定的权值最大值
#define MaxN 27
//设定的最大结点个数
#define Maxsc 500
//设定存放字符串编码数组的大小
#include “Haffman.h“ //包含头文件“Haffman.h“
void main(void)
{
int i j n = 27 k l; //定义n为结点个数
int weight[MaxN] =
{18664132232103211547571532205763151485180238181161}; //存放各个结点的权值
char str[Maxs]; //存放字符串
char letter[MaxN] =
{‘ ‘‘a‘‘b‘‘c‘‘d‘‘e‘‘f‘‘g‘‘h‘‘i‘‘j‘‘k‘‘l‘‘m‘‘n‘‘o‘‘p‘‘q‘‘r‘‘s‘‘t‘‘u‘‘v‘‘w‘‘x‘‘y‘‘z‘};
//结点对应字母
char hcode[MaxN][MaxBit];
//存放每个结点的对应编码
int count[MaxN] = {0};
//存放每个结点的对应编码位数
char strcode[Maxsc];
//存放字符串的编码结果
/*
//输入结点个数n
printf(“请输入结点个数(不能超过%d):“ MaxN);
scanf(“%d“ &n);
getchar(‘\n‘);
//判断n的值最大不能超过MaxN
if(n > MaxN)
{
printf(“\n给出的n越界修改MaxN的值!\n“);
exit(0);
}
*/
//输入字符串
printf(“请输入要编码的字符串(最大长度为%d): “ Maxs);
scanf(“%c“ &str[0]);
if(str[0] == ‘\n‘)
{
printf(“没有输入字符串!\n“);
exit(0);
}
i = 0;
while(str[i] != ‘\n‘)
{
i++;
scanf(“%c“ &str[i]);
if(i >= Maxs)
{
printf(“输入的字符串过大!\n“);
exit(0);
}
}
str[i] = ‘\0‘;
/*
//输入各个结点的的字母和对应的权值
printf(“\n请输入各个结点对应的字母:\n“);
for(i = 0; i < n; i++)
{
printf(“letter[%d] = “ i + 1);
scanf(“ %c“ &letter[i]);
}
printf(“\n请输入各个结点的权值:\n“);
for(i = 0; i < n; i++)
{
printf(“weight[%d] = “ i + 1);
scanf(“%d“ &weight[i]);
}
*/
HaffNode *myHaffTree = (HaffNode *)malloc(sizeof(HaffNode) * (2 * n + 1));
Code *myHaffCode = (Code *)malloc(sizeof(Code) * n);
Haffman(weight n myHaffTree);
HaffmanCode(myHaffTree n myHaffCode);
//输出每个叶结点的哈夫曼编码
printf(“\n对26个小写英文字母和空格进行哈夫曼编码结果如下:\n“);
for(i = 0; i < n; i++)
{
printf(“Letter = %c Weight = %d Code = “ letter[i] myHaffCode[i].weight);
for(j = myHaffCode[i].start; j < n; j++)
{
printf(“%d“ myHaffCode[i].bit[j]);
count[i]++;
}
putchar(‘\n‘);
}
putchar(‘\n‘);
//存放每个结点对应的编码
for(i = 0; i < n; i++)
for(k = 0; k < count[i]; k++)
{
for(j = myHaffCode[i].start l = 0; j < n; j++ l++)
hcode[i][l] = myHaffCode[i].bit[j] + 48;
hcode[i][l] = ‘\0‘;
}
//存放字符串哈夫曼编码结果
k = 0;
l = 0;
while(str[k] != ‘\0‘)
{
for(i = 0; i < n; i++)
{
if(str[k] == letter[i])
for(j = 0; j < count[i]; j++)
strcode[l++] = hcode[i][j];
}
k++;
}
strcode[l++] = ‘\0‘;
//读取字符串并且显示字符串哈夫曼编码结果
printf(“对您输入的字符串“);
i = 0;
while(str[i] != ‘\0‘)
{
printf(“%c“ str[i]);
i++;
}
printf(“进行哈夫曼编码的结果为:\n“);
for(i = 0; i < strlen(strcode); i++)
printf(“%c“ strcode[i]);
putchar(‘\n‘);
//调用译码函数进行译码
HaffmanCoding(strcode hcode letter n str);
//输出译码结果
printf(“\n进行哈夫曼译码的结果为:“);
for(i = 0; i < strlen(strcode); i++)
printf(“%c“ strcode[i]);
printf(“\n\n“);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 530 2010-01-02 19:04 哈弗曼编码\Huffman编码\Huffman编码.dsw
文件 33792 2010-01-02 19:55 哈弗曼编码\Huffman编码\Huffman编码.ncb
文件 326 2010-01-02 18:18 哈弗曼编码\Huffman编码\BFChang.h
文件 1561 2010-01-02 19:55 哈弗曼编码\Huffman编码\Huffman编码.plg
文件 3178 2010-01-02 19:06 哈弗曼编码\Huffman编码\Haffman.h
文件 4464 2010-01-02 19:06 哈弗曼编码\Huffman编码\Huffman编码.dsp
文件 3205 2010-01-02 19:55 哈弗曼编码\Huffman编码\Huffman.cpp
文件 48640 2010-01-02 19:55 哈弗曼编码\Huffman编码\Huffman编码.opt
文件 33792 2010-01-02 19:55 哈弗曼编码\Huffman编码\Debug\vc60.idb
文件 53248 2010-01-02 19:55 哈弗曼编码\Huffman编码\Debug\vc60.pdb
文件 228312 2010-01-02 19:06 哈弗曼编码\Huffman编码\Debug\Huffman编码.pch
文件 193528 2010-01-02 19:55 哈弗曼编码\Huffman编码\Debug\Huffman编码.ilk
文件 188505 2010-01-02 19:55 哈弗曼编码\Huffman编码\Debug\Huffman编码.exe
文件 451584 2010-01-02 19:55 哈弗曼编码\Huffman编码\Debug\Huffman编码.pdb
文件 12028 2010-01-02 19:55 哈弗曼编码\Huffman编码\Debug\Huffman.obj
文件 233984 2010-06-27 21:14 哈弗曼编码\数据结构设计性实验报告译码.doc
目录 0 2010-06-27 21:12 哈弗曼编码\Huffman编码\Debug
目录 0 2010-06-27 21:12 哈弗曼编码\Huffman编码
目录 0 2010-06-27 21:12 哈弗曼编码
----------- --------- ---------- ----- ----
1490677 19
- 上一篇:全景图像拼接
- 下一篇:LS-DYNA自定义本构子程序基本流程
相关资源
- 利用C++哈希表的方法实现电话号码查
- 学校超市选址问题(数据结构C语言版
- 数据结构,迷宫问题C语言版源代码
- DSDEMO-C演示(数据结构C语言版 严蔚敏
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- 实验报告:数据结构长整数四则运算
- 数据结构教程李春葆第五版书中例题
- 吕鑫vc6c++数据结构视频源码
- 数据结构教程李春葆第五版课后答案
- 李春葆课后习题答案(数据结构教材
- 数据结构1800题 题+答案(全)
- 数据结构(C语言版)ppt课件,清华,
- c++常用游戏算法及数据结构设计
- 数据结构超全面复习导图
- 《Data Structures and Algorithm Analysis in C
- 数据结构C语言版教学笔记严蔚敏
- 数据结构C语言版期末考试试题(有答
- 多功能计算器实现C++代码以及代码详
- C语言数据结构银行客户排队
- C语言实现栈操作
- 简易学生管理系统源码 数据结构 大作
- 数据结构与C语言综合习题集
- 数据结构实验——赫夫曼树相关
- C语言进阶源码---基于graphics实现图书
- 数据结构——C++语言描述 陈慧南
- 广东工业大学数据结构课程设计航空
- 数据结构课程设计扑克牌排序
- 数据结构各种算法实现(C++模板),
- (严版C语言版数据结构源码.rar
评论
共有 条评论