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

📄 main.cpp

📁 Huffman编码及译码 具体的要求: 1.将给定字符文件编码:生成编码
💻 CPP
字号:
#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<iomanip.h>
#include "FreqPair.h"
#include "Huffnode.h"
#include "HuffCode.h"
#include "Hufftree.h"
#include "SLList.h"
#include "FileAnalysis.h"
#include "buildSLList.h"
#include "buildHufftree.h"
#include "HuffEncode.h"
#include "HuffCodetoFile.h"
#include "HuffDecode.h"



void main(){

//////////////////////////////////////////////////////
//进行文件分析,找出所用的字符个数,并形成有用的频率对
	char * inputfile1="inputfile1.txt";
	FreqPair *letter=new FreqPair[128];   
  	int lettercount=0;
    FileAnalysis(letter,lettercount);
	cout<<"-----------------读入文件inputfile1.txt-------------------\n";


/////////////////////////////////////////////////////
//利用文件分析得到的频率对生成链表。
	SLList *alist=new SLList;
   	alist=buildlist(letter,lettercount);
    cout<<"-----------------建立链表alist完成------------------------\n";

////////////////////////////////////////////////////
//从链表生成霍夫曼树。
	HuffTree *htree;
	htree=buildHufftree(alist);
	cout<<"-----------------建立霍夫曼树htree完成--------------------\n";


///////////////////////////////////////////////////
//从霍夫曼树进行编码,存到hcode[]中,并保存到一个文件中。
	huffcode *hcode=new huffcode[lettercount];
	char * outputfile1="outputfile1.txt";
    HuffEncode(htree,hcode,letter,outputfile1);
	cout<<"-----------------编码完成---------------------------------\n";



///////////////////////////////////////////////////
//将一个文件进行编码,并输入到另一个文件中
	char*f_in="inputfile1.txt";
	char*f_out="inputfile2.txt";
	HuffCodetoFile(f_in,f_out,hcode,lettercount);
	cout<<"-----------------写入编码文件完成-------------------------\n";

	
////////////////////////////////////////////////////
//用霍夫曼树从一个文件进行译码,输出到另一个文件。
	char*fin="inputfile2.txt";
	char*fout="outputfile2.txt";
    HuffDecode(htree,fin,fout);
	cout<<"-----------------译码完成---------------------------------\n";
}

⌨️ 快捷键说明

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