关于哈弗曼树

来源:百度知道 编辑:UC知道 时间:2024/06/22 12:49:34
《数据结构》课程设计题目
题目一:
一、课题名称:哈夫曼编码算法的实现
二、课题来源:课程组自拟
三、课题类型:综合型
四、目的意义:
1.了解哈夫曼算法的思路核心,掌握哈夫曼算法在压缩算法中的基本应用
2.全面提高学生的程序设计、开发能力
五、基本要求:
1.任意性:用户输入任意的字符串,系统自动给出每个字符的哈夫曼编码和对应的哈夫曼树
2.友好性:界面要友好,输入有提示,尽量展示人性化
3.可读性:源程序代码清晰、有层次
4.健壮性:用户输入非法数据时,系统要及时给出警告信息
六、主要参考资料:
[1]严蔚敏等,《数据结构》,清华大学出版社,北京.2000
[2]谭浩强,《C++语言程序设计》,清华大学出版社,北京.
高手编译成功 加100分!!

请尽快 十分感谢!!!

请将运行结果上传 谢谢谢谢 万分感谢!~!!!

这是我们的作业题,自己写 的……(可能输入的格式跟你要的不一致,自己改一下)

如果有什么不懂的就问我,我可以把其中所有相关的文件发给你 ^^

注:1、 初始化创建哈夫曼树有三种选择,其中选择编译课本测试数据时和编译源文件是,调用的输入文件分别是:test.txt和input.txt;字母的哈夫曼编码都保存在文件:hmfTree.txt;
2、 用户自定义模式下,需要编码的文件内容保存在ToBeTran.txt中;课本测试数据和源文件代码分别保存在course.txt和sorse.txt中,在(1)中选择不同的选项,则在编码时调用相应的文件进行编码,编码结果保存在文件CodeFile.txt中。
3、 文件译码时,调用文件CodeFile.txt进行译码,得到的结果保存在文件TextFile.txt中。
4、 打印代码文件:调用CodeFile.txt,结果显示在终端并保存在文件CodePrin.txt中。
5、 打印哈夫曼树:用凹入表形式把哈夫曼树显示在终端,同时将它保存在文件TreePrint..txt中。

#include <stdio.h>
#include<malloc.h>
#include <string.h>
#include<fstream>
#include<iostream>
using namespace std;

typedef struct {
unsigned int weight;
char ch1;
unsigned int parent,lchild,rchild;
}HTNode,*HuffmanTree;

typedef char **HuffmanCode;

typedef struct {
char ch;
char code[7];
}codenode,*code;

void select(HuffmanT