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

  • 大小: 2.25MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-11-15
  • 語言: Java
  • 標簽: 壓縮??解壓??

資源簡介

資源中有完整的哈夫曼壓縮&解壓的算法java實現,并且包括兩個運行實例。

資源截圖

代碼片段和文件信息

package?huffman;

import?java.io.BufferedReader;
import?java.io.BufferedWriter;
import?java.io.File;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.FileReader;
import?java.io.FileWriter;
import?java.io.IOException;
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.Comparator;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;

public?class?Compress?{

/*?字符串轉int*/
public?static?int?changeStringToInt(String?s){??
????????int?v1?=?(s.charAt(0)?-?48)*128;??
????????int?v2?=?(s.charAt(1)?-?48)*64;??
????????int?v3?=?(s.charAt(2)?-?48)*32;??
????????int?v4?=?(s.charAt(3)?-?48)*16;??
????????int?v5?=?(s.charAt(4)?-?48)*8;??
????????int?v6?=?(s.charAt(5)?-?48)*4;??
????????int?v7?=?(s.charAt(6)?-?48)*2;??
????????int?v8?=?(s.charAt(7)?-?48)*1;??
????????return?v1?+?v2?+?v3?+?v4?+?v5?+?v6?+?v7?+?v8;??????
????}??

/*?按字符出現的頻率降序排序*/
public?static?List>??Sort(Map?map)
{
????????List>?list_Data?=?new?ArrayList>?(map.entrySet());????
????????Collections.sort(list_Data?new?Comparator>()????
??????????{?????
??????????????public?int?compare(Map.Entry?o1?Map.Entry?o2)????
??????????????{????
???????????????if(o2.getValue()?!=?null?&&?o1.getValue()?!=?null?&&?o2.getValue().compareTo(o1.getValue())?>?0){????
????????????????return?-1;????
???????????????}else{????
????????????????return?1;????
???????????????}????
??????????????}????
??????????});?
????????return?list_Data;
}

/*?統計字符頻率*/
public?static?Map?Statistic(StringBuffer?s)
{
Map?map?=?new?HashMap();
for(int?i?=?0;?i? {
??????????????String?perStr?=?s.substring(i?i+1);
??????????????if(map.containsKey(perStr)){
???????????????????Integer?num?=?map.get(perStr);
???????????????????map.put(perStr?num?+?1);
??????????????}else{
???????????????????map.put(perStr?1);
??????????????}
?????????}
return?map;
}

/*?壓縮文件*/
public?static?void?CompressFile(String?rfileString?wfile?String?codefile?String?charFrequency)
{
StringBuffer?s?=??new?StringBuffer();
????????BufferedReader?br;
try?{
br?=?new?BufferedReader(new?FileReader(rfile));
int?ss?=?-1;
????????try?{
while(-1?!=?(ss?=?br.read())){
?????s.append((char)ss);
}
br.close();
Map?map=Statistic(s);
/*?按字符出現的頻率降序排序*/
List>?data?=?Sort(map);
/*構建哈夫曼樹,獲取不同字符的編碼*/
Huffman?haffman=new?Huffman();
Map?result?=?haffman.GetCode(data);
/*對源文件字符進行編碼轉換*/
StringBuffer?charcode?=?new?StringBuffer();
for(int?i?=?0;?i? {
??????????????String?perStr?=?s.substring(i?i+1);
??????????????charcode.append(result.get(perStr));
?????????}

File?f?=?new?File(codefile);

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-12-09?20:58??__MACOSX\
?????目錄???????????0??2017-12-09?20:58??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\
?????文件?????????120??2017-12-09?20:57??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\._.DS_Store
?????目錄???????????0??2017-12-09?20:58??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\
?????文件?????????120??2017-11-23?16:43??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\._.DS_Store
?????文件?????????709??2017-11-15?10:53??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\._Aesop_Fables.txt
?????文件?????????176??2017-11-23?16:42??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\._Sort.txt
?????文件?????????176??2017-11-23?16:42??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\._code.txt
?????文件?????????176??2017-11-23?16:43??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\._decode.txt
?????目錄???????????0??2017-12-09?20:58??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\graph\
?????文件?????????120??2017-11-23?17:05??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\graph\._.DS_Store
?????文件?????????176??2017-11-23?16:45??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\graph\._Sort.txt
?????文件?????????176??2017-11-23?16:45??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\graph\._code.txt
?????文件?????????176??2017-11-23?17:05??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\graph\._decode.txt
?????文件?????????176??2017-11-23?17:02??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\graph\._encode.txt
?????文件?????????619??2017-11-15?10:53??__MACOSX\哈夫曼壓縮&解壓源碼及樣例\graph\._graph.txt
?????目錄???????????0??2017-12-09?20:57??哈夫曼壓縮&解壓源碼及樣例\
?????文件???????10244??2017-12-09?20:57??哈夫曼壓縮&解壓源碼及樣例\.DS_Store
?????目錄???????????0??2017-11-23?16:44??哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\
?????文件????????6148??2017-11-23?16:43??哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\.DS_Store
?????文件??????190066??2017-11-15?10:53??哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\Aesop_Fables.txt
?????文件?????????535??2017-11-23?16:42??哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\Sort.txt
?????文件????????1003??2017-11-23?16:42??哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\code.txt
?????文件??????190066??2017-11-23?16:43??哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\decode.txt
?????文件??????108373??2017-11-23?16:42??哈夫曼壓縮&解壓源碼及樣例\Aesop_Fables\encode.txt
?????目錄???????????0??2017-11-23?17:05??哈夫曼壓縮&解壓源碼及樣例\graph\
?????文件????????6148??2017-11-23?17:05??哈夫曼壓縮&解壓源碼及樣例\graph\.DS_Store
?????文件?????????272??2017-11-23?16:45??哈夫曼壓縮&解壓源碼及樣例\graph\Sort.txt
?????文件?????????513??2017-11-23?16:45??哈夫曼壓縮&解壓源碼及樣例\graph\code.txt
?????文件?????2094720??2017-11-23?17:05??哈夫曼壓縮&解壓源碼及樣例\graph\decode.txt
?????文件??????930330??2017-11-23?17:02??哈夫曼壓縮&解壓源碼及樣例\graph\encode.txt
............此處省略6個文件信息

評論

共有 條評論