ecbtree.h

来自「用哈夫曼编码实现文件压缩和解压缩. 压缩过程的实现:1创建Haffman树&#」· C头文件 代码 · 共 73 行

H
73
字号
#ifndef ECBTREE_H
	#define ECBTREE_H
	#define EBTreeType long
	struct BinTreeNode;
	
	typedef struct BinTreeNode* PBinTreeNode;
	
	struct BinTreeNode
	{
		EBTreeType info;
		PBinTreeNode llink;
		PBinTreeNode rlink;
	};
	
	typedef struct BinTreeNode* BinTree;
	typedef BinTree* PBinTree;
	
	/*Start of Find Path Ulti Value*/
	int gConsPos;
	int gFind;
	char* gFindList;
	int findLen;
	PBinTreeNode targetNode;
	/*End of Find Path Ulti Value*/
	
	extern PBinTree consBTree(EBTreeType* initList);
	extern PBinTreeNode consRestBTree(EBTreeType* initList);
	extern void findPath(PBinTreeNode inNode,PBinTreeNode searchNode);
	extern void prePanDuan(PBinTreeNode inNode,PBinTreeNode searchNode);
	extern void preOrder(PBinTreeNode inNode);
	extern void preVisit(EBTreeType info);
	extern void locateNode(PBinTreeNode inNode,EBTreeType inInfo,PBinTree targetNode);
	
	extern void preOrderUnStack(PBinTreeNode inNode);
	
	/*Haffman Tree Ver1*/
	#define MAXCHAR 30000
	#define MAXNODE 300
	#define MAXNUM  150
	#define InfoType char
	struct HtNode
	{
		EBTreeType ww;
		char info;
		int parentIndex;
		int llinkIndex;
		int rlinkIndex;
	};
	
	struct HtTree
	{
		struct HtNode ht[MAXNODE];
		int rootIndex;
	};
	
	typedef struct HtTree* PHtTree;
	
	typedef struct
	{
		char asciiCode;
		unsigned long haffCode;
		int haffCodeLen;
	}HaffCode;
	
	
	extern PHtTree consHtTree(EBTreeType* initList);
	extern PHtTree haffmanAlgorithm(int m,EBTreeType* w);
	extern void preHtOrder(PHtTree inTree,int rootIndex);
	extern void preHtVisit(InfoType info);
	extern void preHaffListMake(PHtTree inTree,int rootIndex,unsigned youBiao,int sDepth,HaffCode* inList);
	
	/*End of Defination of Haffman Tree*/
#endif

⌨️ 快捷键说明

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