main.cpp

来自「Huffman编码及译码 1.将给定字符文件编码:生成编码」· C++ 代码 · 共 68 行

CPP
68
字号
#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 + =
减小字号Ctrl + -
显示快捷键?