📄 main.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 + -