huffman.h

来自「实现最优二叉树的构造;在此基础上完成哈夫曼编码器与译码器。 假设报文中只会出现如」· C头文件 代码 · 共 55 行

H
55
字号
// 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 + =
减小字号Ctrl + -
显示快捷键?