⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 huffmantree.h

📁 对任意输入的一段英文
💻 H
字号:
//程序名:HuffmanTree.h
//程序功能:哈夫曼树类的头文件(并用其来实现编/译码)
//作者:侯健
//日期:2007.10.30
//版本:0.1
//Note:本题难度较大,为方便阅读与修改,添加了较多的但较为规范的中文注释,实际上已过度注释(over-comment)

//对应类实现文件: HuffmanTree.cpp
//对应主程序文件: main.cpp

 

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
struct HuffmanNode        //定义哈夫曼树各结点
{
 int weight;              //存放结点的权值,假设只考虑处理权值为整数的情况
 int parent;              //记录结点父亲位置,-1表示为根结点,否则表示为非根结点
 int lchild,rchild;       //分别存放该结点的左、右孩子的所在单元的编号
};
class HuffmanTree		  //建立哈夫曼树类
{
private:
 HuffmanNode *Node;      //哈夫曼树中结点的存储结构
 char *Info;             //用来保存各字符信息
 int LeafNum;            //树中的叶子结点总数
public:
 HuffmanTree();          //构造函数
 ~HuffmanTree();         //析构函数
 void Initialization(int WeightNum);   //初始化函数:根据WeightNum个权值建立一棵哈夫曼树
 void Encoder();         //编码函数:利用构造好的哈夫曼树对字符进行编码
 void Decoder();         //译码函数:对二进制串进行译码
 void Print();           //印文件函数:把已保存好的编码文件显示在屏幕
 void TreePrinting();    //印哈夫曼树函数:将已在内存中的哈夫曼树以直观的方式显示在终端上
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -