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

📄 ecbtree.h

📁 用哈夫曼编码实现文件压缩和解压缩. 压缩过程的实现:1创建Haffman树&#61664 2打开需压缩文件&#61664 3将需压缩文件中的每个ascii码对应的haffman编码按bit单位输出&
💻 H
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -