91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 12KB
    文件類(lèi)型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-09
  • 語(yǔ)言: C/C++
  • 標(biāo)簽: huffman??壓縮??c語(yǔ)言??

資源簡(jiǎn)介

基于huffman編碼的文件解壓縮程序 采用c語(yǔ)言編寫(xiě),支持文件的解壓縮功能 供學(xué)習(xí)交流,大型文件請(qǐng)不要嘗試,可能會(huì)很慢

資源截圖

代碼片段和文件信息

#include“huffman.h“

//#include
static?int?get_file_name(char*?destchar*?srcint?len);
char?tmp_code[260];
static?int?search_code(struct?huffman*?hufPHNODE?phnodechar?codeint?depth);

static?int?get_file_name(char*?destchar*?srcint?dest_lenint?src_len)
{
if(dest==NULL||src==NULL){
return?0;
}
int?i=0;
for(i=src_len-1;i>=0;i--){
if(src[i]==‘\\‘){
break;
}
}
if(i==0){
return?0;
}
memset(dest0dest_len);
strncpy(dest&src[i+1]src_len-i-1);
return?1;
}

int?huffman_inti(struct?huffman*?huf)
{
// huf->f_size=NULL;
memset(huf->file_path0strlen(huf->file_path));
huf->f_src=NULL;
for(int?i=0;i!=256;i++){
huf->freq[i]=0;
for(int?j=0;j!=265;j++){
huf->hf_table[i][j]=0;
}
}
prlist_inti(&huf->plist);
huf->huf_tree_head=NULL;
return?R_OK;

}

int?read_file(struct?huffman*?hufchar*?path)
{

HANDLE?h_file;
HANDLE?h_filemap;
DWORD??f_hsize;
void?*src;
for(int?i=0;i!=90;i++){
if(path[i]==‘\n‘){
path[i]=0;
}
}
//CString?str_path(path);
//?Create?file?kernel?object
h_file=?CreateFile?(path?GENERIC_READ|GENERIC_WRITE?\
FILE_SHARE_READ|FILE_SHARE_WRITE?NULL?OPEN_EXISTING?FILE_ATTRIBUTE_NORMAL?NULL?)?;
if?(?h_file?==?INVALID_HANDLE_VALUE?)
return?RD_ERO;

//?Get?file?size
huf->f_size=?GetFileSize?(?h_file?&f_hsize?)?;
//?Create?file?mapping?object?
h_filemap?=?CreateFileMapping?(?h_file?NULL?PAGE_READWRITE?0?0?NULL?)?;
if?(?h_filemap?==?NULL?)
{
CloseHandle?(?h_filemap?)?;
return?false?;
}
src?=?MapViewOfFile?(?h_filemap?FILE_MAP_READ?0?0?f_hsize?)?;
if?(?src?==?NULL?)
{
CloseHandle?(?h_filemap)?;
CloseHandle?(?h_file?)?;
return?false?;
}
huf->f_src=src;
strcpy(huf->file_pathpath);
huf->h_file=h_file;
huf->h_filemap=h_filemap;
return?R_OK;
}

int?stat_frequency(struct?huffman*?huf)
{
????DWORD?size=huf->f_size;
unsigned?char*?src=(unsigned?char*)(huf->f_src);
for(DWORD?i=0;i!=size;i++){
huf->freq[src[i]]++;
}
return?R_OK;
}

int?inti_prlist(struct?huffman*?huf)
{
static?int?j=0;
PHNODE?phnode;

// PHNODE?parray=(PHNODE)malloc(sizeof(PHNODE)*256);
????PHNODE?parray=huf->plist.pharray;
for(int?i=0;i!=256;i++){
if(huf->freq[i]==0){
continue;
}
phnode=&(parray[j]);
j++;
phnode->mark=i;
phnode->value=huf->freq[i];
phnode->isleaf=1;
phnode->lnode=phnode->rnode=NULL;
prlist_insert(&(huf->plist)phnode);
}
return?R_OK;
}

int?build_huf_tree(struct?huffman*?huf)
{
PHNODE?lnode;
PHNODE?rnode;
PHNODE?fnode;
static?int?i=256;
????PHNODE?parray=huf->plist.pharray;
while(huf->plist.size>1){
prlist_delete(&(huf->plist)&lnode);
prlist_delete(&(huf->plist)&rnode);
fnode=&(parray[i]);
i++;
// fnode=(PHNODE)malloc(sizeof(PHNODE));
fnode->mark=0;
fnode->isleaf=0;
fnode->lnode=lnode;
fnode->rnode=rnode;
fnode->value=lnode->value+rnode->value;

prlist_insert(&(huf->plist)

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----

?????文件???????7805??2012-11-14?15:32??huffman\huffman.cpp

?????文件??????28160??2012-11-14?15:39??huffman\huffman.exe

?????文件????????588??2012-11-14?15:31??huffman\huffman.h

?????文件???????1334??2012-11-14?15:39??huffman\main.cpp

?????文件???????1772??2012-11-14?15:22??huffman\prlist.cpp

?????文件????????299??2012-11-09?16:44??huffman\prlist.h

?????文件???????1111??2012-11-14?15:31??huffman\typedefine.h

?????目錄??????????0??2012-11-14?15:40??huffman

-----------?---------??----------?-----??----

????????????????41069????????????????????8


評(píng)論

共有 條評(píng)論

相關(guān)資源