实验目的: 1.理解并掌握哈夫曼树的设计思想。 2. 学习使用二叉树解决实际问题的能力。 实验要求: 1.基本要求: 初始化。对输入的任意长度的字符串进行频度统计,并建立哈夫曼树。 编码。利用已经建好的哈夫曼树对字符进行编码并输出。 解码。利用已经建好的哈夫曼树对编码后的字符串进行解码并输出。 分析。比较字符串编码前后的长度,分析哈夫曼编码的时、空效率。 2.尝试利用多文件编译实现。 3.熟悉并掌握相关的编码规范。 4.遵从“Honor Code”原则,独立完成相关项目。请于11月20日10:00PM前,将源码提交至学习平台。
#include<iostream> |
|
#include<queue> |
|
#include<vector> |
|
#include<map> |
|
using namespace std; |
|
struct TreeNode { |
|
char val; |
|
int freq; |
|
TreeNode *left; |
|