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

📄 huffman.h

📁 实现最优二叉树的构造;在此基础上完成哈夫曼编码器与译码器。 假设报文中只会出现如下表所示的字符: 字符 A B C D E F G H I J K L M N 频度 186 64 13 22
💻 H
字号:
// Haffman.h: interface for the Haffman class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_HAFFMAN_H__DC62F8A7_2DE8_47A3_9053_9935B130769E__INCLUDED_)
#define AFX_HAFFMAN_H__DC62F8A7_2DE8_47A3_9053_9935B130769E__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define  TRUE      1
#define   FALSE     0
#define   OK        1
#define   ERROR     0
#define   INFEASIBLE  -1
#define   OVERFLOW    -2
#define   MAXSTRLEN  1024              //设英文小说每段最长为1024个英文字符
typedef   int      Status;             //定义整形


typedef  struct
{
	unsigned int weight;//权值定义
	unsigned int parent,lchild,rchild;
}HTNode,*HuffmanTree;  //动态分配数组存储HUFFMAN树

typedef  char **HuffmanCode;  //动态分配数组存储HUFFMAN编码



class Huffman  
{
public:
	int display();
	void code2txt();
	void txt2code();
	void writecodetable();
	void init();
	int N;
	Status getweight();
	int *W;
	char *C;
	HuffmanTree HT;
	HuffmanCode HC;
	void select(HuffmanTree HT,int i,int &s1,int &s2);
	void HuffmanCoding(HuffmanTree &HT,HuffmanCode &HC,int *w,int n);
	Huffman();

	virtual ~Huffman();

};

#endif // !defined(AFX_HAFFMAN_H__DC62F8A7_2DE8_47A3_9053_9935B130769E__INCLUDED_)

⌨️ 快捷键说明

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