huffman.h

来自「实现用哈夫曼树进行简单的编码译码功能」· C头文件 代码 · 共 37 行

H
37
字号
//程序名: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 + =
减小字号Ctrl + -
显示快捷键?