www.pudn.com > Huffman.rar > huffman_g.h


#ifndef _HUFFMAN_G_HEADER_001_
#define _HUFFMAN_G_HEADER_001_

#include "huffman_base.h"

// 当元素权值已经有序时,可以使用A. Moffat和J. Katajainen设计
// 的在权值数组内部构建Huffman的方法
// A. Moffat和J. Katajainen对该算法的描述见
// http://www.cs.mu.oz.au/~alistair/abstracts/inplace.html

class huffman_g :
	public huffman_base
{
public:
	huffman_g() { need_sorted = true; }	
	virtual ~huffman_g(void) {}

public:
	void generate_codes(int num, const unsigned long* weights);

protected:
	void calculate_minimum_redundancy(unsigned long A[], int n);
};

#endif