📄 huffmantree.h
字号:
#pragma once
#include "windows.h"
#include "wchar.h"
#include "limits.h"
#define SYMBOL_TYPE char
#define SYMBOL_SIZE (sizeof(SYMBOL_TYPE) * 8)
#define SYMBOL_NUMBER (UCHAR_MAX + 1)
//#define SYMBOL_NUMBER 65556
typedef struct nodH
{
nodH()
{
pLeftChild = NULL;
pRightChild = NULL;
pParrent = NULL;
nrAparition = 1;
symbol = L'';
}
nodH *pLeftChild;
nodH *pRightChild;
nodH *pParrent;
unsigned int nrAparition;
SYMBOL_TYPE symbol;
}NOD_HUFFMAN;
class HuffmanTree
{
public:
// Constructor
HuffmanTree(void);
// Destructor
~HuffmanTree(void);
public:
// Insert a symbol
void Insert(SYMBOL_TYPE symbol);
// Verify the property of sibling
void Sibling();
// Change 2 nods
void ChangeNods(NOD_HUFFMAN* &nod1, NOD_HUFFMAN* &nod2);
public:
//Retrurn the root
NOD_HUFFMAN* GetRoot() const;
friend class Encoder;
private:
// The Huffman Tree root
NOD_HUFFMAN* m_pRoot;
// The Huffman Tree leaves
NOD_HUFFMAN* m_leaves[SYMBOL_NUMBER];
unsigned int nrLeaves;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -