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

📄 huffman.h

📁 实现用哈夫曼树进行简单的编码译码功能
💻 H
字号:
//程序名:Huffman.h
//程序功能:哈夫曼树的头文件
//程序作者:伍世浩 20072102310
//日期:2008.12.11
//文件信息:
//  Huffman.h             哈夫曼树的定义文件
//  HuffmanTree.h         哈夫曼树的实现文件
//  HuffmanTree_Main.cpp  主函数


struct HuffmanNode {
	int weight;//存放结点的权值,假设只考虑处理权值为整数的情况
	int parent;//-1表示为根结点,否则表示为非根结点
	int lchild,rchild;//分别存放该结点的左右孩子的所在单元的编号
	HuffmanNode(){ parent=-1; weight=0; lchild=-1; rchild=-1; }//初始化结点
};

class HuffmanTree 
{
public:
	struct HuffmanNode *Node;//哈弗曼树中结点的存储结构
	char *Info;//用来保存各字符的信息
	int LeafNum;//树中的叶子结点总数
public:
	HuffmanTree ( );//根据WeightNum个权值建立一棵哈弗曼树
	char *Encoder ( char ch );//利用构造好的哈夫曼树对字符ch进行编码
	void Decoder ( char * BitStr );//对二进制串进行译码
    void WriteFile(void) ; //将信息保存到文件中
	void ReadFile(void) ;//从文件读取信息
	void ReadDefault( void);//读取默认哈夫曼树
	void Create( int WeightNum  );//手工方式重新创建哈夫曼树
	void Auto_Creat();//自动创建哈夫曼树
	void Build ( );//从以现有信息创建哈夫曼树
	void Print( int T,int layer );//凹入表示法显示哈夫曼树
	int Get_LeafNum( );//得到二叉树叶子总数
	~HuffmanTree();
};

⌨️ 快捷键说明

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