huffman_h.h

来自「哈弗曼编码的课程设计报告」· C头文件 代码 · 共 49 行

H
49
字号
#ifndef HUFFMAN_H
#define HUFFMAN_H

#include"System.h"
#include"TreeNode_cpp.h"
#include"BinaryTree_cpp.h"

int m_numbers=67;//总的字符个数
char m_char[]=" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,.:()12345;-%";//存储的字符    
int m_char_weight[67]={0};//每个字符对应的劝值

template<class W>
class HfmTree_T
{
public:
	HfmTree_T(void);
	HfmTree_T(const BinaryTree_T<int> &rhs);
	HfmTree_T(const HfmTree_T<W> &rhs);
	~HfmTree_T(void);

	bool operator>(const HfmTree_T<W> &rhs)const;
	bool operator==(const HfmTree_T<W> &rhs)const;
	bool operator<(const HfmTree_T<W> &rhs)const;
	HfmTree_T<W>& operator=(const HfmTree_T<W> &rhs);

	//创建Hfm树
	void CreatHfmTree(void);
	operator W()const;//重载()运算符 以得到劝值
	//void ShowTree(void);

	//记录频率
	void GetWeight(char c);
	
	//译码
	void Code(char **&code);

	int GetNumber(int x);
	int GetNumber(char c);
	void GenerateCode(void);
	void DeCode(void);
private:
		void GenerateCode(BinaryTree_T<int> &P);
		void GenerateCode(TreeNode_T<int> *ptr,char **c,char **&code,
											 int &count,int k,int lev);
		BinaryTree_T<int>m_tree;
		W m_weight;
};
#endif

⌨️ 快捷键说明

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