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

📄 get_frequency.h

📁 数据结构的一个作业
💻 H
字号:
#include<iostream>


/***************************************
*                  蔡敏
***************************************/

using namespace std;

#include "huffcode&decode.h" 

void get_frequency(char* filename,char* dir)
{
	int i,j=0;
	char ch;
	ifstream infile;
	unsigned long chs[256]={0};// 每个字符出现的频率

	infile.open(filename,ios_base::binary);
	infile.get(ch);
	while(!infile.eof()) {
		chs[(unsigned char)ch]++;
		infile.get(ch);
	}

	// 非0频率字符及其出现频率集合
	char_record w[256];
	memset(w, 0, sizeof(w));
	for(i=0;i<=255;i++) {
		if(chs[i]!=0){
			w[j].weight=chs[i];
			w[j].ascii_code=(unsigned char)i;
			j++;
		}
	}
	for(i=0;w[i].weight!=0&&i<=255;i++)//这个循环是用来过滤掉权值为零的字符 
		;
	// 此时i为非0频率出现的字符的数目
	HaffNode* ht = hufftree(w, i);//建立hufftree 
	HaffCode* hc = huff_encode(w, i, ht);
	HaffCompress(hc,i,filename,w,dir);//压缩文件  

	infile.close();
}

⌨️ 快捷键说明

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