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

📄 coding.h

📁 利用霍夫曼树进行文件压缩和解压
💻 H
字号:
#pragma once

# include <iostream>
# include <string>
# include <fstream>
# include "huffmantree.h"
# include "iter.h"

using namespace std;

const int Csize=256;





class Coding{
public:
	Coding( const char * );
	Coding(){}
	~Coding(){ htree.DelAll(); }
	void setstrkey( const char * );                          //设置字符串的huffman编码
	int setfilekey( const char *filename );                  //设置文件的huffman编码
	void getCode( char c, char*str );                        //获取字符c的编码
	void setcode(int flag);                                          //设置并获取编码
	void saveCode2File( ofstream &fo, char *str );           //将字符串转存入文件,字符串不足8位时返回
	void saveLastCode2File( ofstream &fo, char *str );       //将不足8位字符串存入文件
//	int decode(  char *co, char * deco );
	void decode( char *co, ostream &out);                    //解码并输出原码,冗余字符由co返回
	void printcode( const char * a );                        //屏幕输出编码
	int compress( const char *ifi, const char *ofi );        //压缩文件
	bool decompress( const char *ifi );                      //解压文件
private:
	char letter[Csize];                                      //存放字母
	string Code[Csize];                                      //存放编码
	int freq[Csize];                                         //存放字母频数
	ExtBinTree<char> htree;                                  //存放设置huffman编码的扩展二叉树
};

⌨️ 快捷键说明

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