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

📄 huffman_h.h

📁 哈弗曼编码的课程设计报告
💻 H
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -