xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 38KB
    文件類(lèi)型: .rar
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-05
  • 語(yǔ)言: C#
  • 標(biāo)簽:

資源簡(jiǎn)介

用C#實(shí)現(xiàn)的哈夫曼編碼的壓縮,包含文件的讀取和編碼的寫(xiě)入

資源截圖

代碼片段和文件信息

using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;

namespace?Huffmancode
{
????
????struct?SmallPair//定義表示最小2個(gè)量的結(jié)構(gòu)體SmallPair
????{
????????public?int?S1;
????????public?int?S2;
????}
????struct?BufferNode//定義帶下表和結(jié)點(diǎn)的結(jié)構(gòu)體BufferNode
????{
????????public?Node?node;
????????public?int?index;
????}
????class?Huffmantree//哈夫曼樹(shù)類(lèi)
????{
????????
????????public?Node[]?huff;
????????
????????public?int?leafnum;

????????private?char[]?temp?=?new?char[100];
????????
????????public?Huffmantree(int?sizeint?leafnumValue)?//帶結(jié)點(diǎn)個(gè)數(shù)的構(gòu)造函數(shù)
????????{
????????????huff?=?new?Node[size];
????????????leafnum?=?leafnumValue;
????????}
????????
????????
????????//初始化哈弗曼樹(shù)
????????public?void?InitTree(Node[]?huffValue)
????????{?
????????????for?(int?i?=?1;?i?<=?leafnum;?i++)
????????????{
????????????????
????????????????huff[i]?=?new?Node();
????????????????huff[i].weight=?huffValue[i?-?1].weight?;
????????????????huff[i].lchild=huff[i].rchild=huff[i].parent=-1;
????????????????huff[i].ch=huffValue[i-1].ch;
????????????}
????????????for?(int?i?=?leafnum?+?1;?i?<=?2?*?leafnum?-?1;?i++)?
????????????{
????????????????huff[i]?=?new?Node();
????????????????huff[i].weight?=?-1;
????????????????huff[i].lchild?=?huff[i].rchild?=?huff[i].parent?=?-1;?
????????????}
????????}
????????
????????//求當(dāng)前無(wú)雙親且權(quán)重最小的兩個(gè)結(jié)點(diǎn)下標(biāo)
????????public?SmallPair?Selectsort(?int?newnum)
????????{
???????????
?????????//Huffman樹(shù)中找出沒(méi)有父節(jié)點(diǎn)并且權(quán)值最小的兩個(gè)節(jié)點(diǎn)
????????BufferNode[]?buffer=new?BufferNode[256];?//存放沒(méi)有父節(jié)點(diǎn)的所有節(jié)點(diǎn)
????????
????????????int?p=0;?//統(tǒng)計(jì)buffer中節(jié)點(diǎn)的個(gè)數(shù)
????????
????????????for(int?m=1;m<=newnum;m++)
????????{
????????if(huff[m].parent==-1)
????????{
????????????????????buffer[p].node?=?huff[m];
????????buffer[p].index?=?m;
????????p++;
????????}
????????}
????????//對(duì)buffer進(jìn)行冒泡排序選出最小的兩個(gè)權(quán)重的結(jié)點(diǎn)
????????BufferNode?temp;
????????for(int?i=1;i<=p-1;i++)
????????{
????????for(int?j=2;j<=p-i+1;j++)
????????{
????????if(buffer[j-1].node.weight ????????{
????????temp?=?buffer[j-1];
????????buffer[j-1]?=?buffer[j-2];
????????buffer[j-2]?=?temp;
????????}
????????}
?????????}
?????????SmallPair?smp;
?????????smp.S1?=?buffer[0].index;
?????????smp.S2?=?buffer[1].index;
?????????return?smp;
?????????}

????????//生成leafnum-1個(gè)非葉子結(jié)點(diǎn)的循環(huán)(共leafnum+(leafnum-1)結(jié)點(diǎn))
????????public?void?InsertTree()
????????{
????????????for(int?i=1;i<=leafnum-1;i++)
????????????{
????????????????SmallPair?min2=Selectsort(leafnum?+i-1);//對(duì)數(shù)組huff[1....leafnum+i+1]中無(wú)雙親的結(jié)點(diǎn)權(quán)值進(jìn)行排序,找出最小的兩個(gè)結(jié)點(diǎn)的下標(biāo)
????????????????
????????????????double?sum=huff[min2.S1].weight+huff[min2.S2].weight;//合并結(jié)點(diǎn)后的權(quán)值sum并修改相應(yīng)的parentlchildrchild值
????????????????huff[leafnum?+?i].weight?=?sum;
????????????????huff[min2.S1].parent?=?huff[min2.S2].parent?=?leafnum?+?i;
????????????????huff[leafnum?+?i].lchild?=?min2.S1;
????????????????huff[leafnum?+?i].rchild?=?min2.

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

?????文件????????348??2010-04-21?11:06??Huffmancode\Huffmancode\bin\Debug\coded?string.txt

?????文件???????7680??2010-04-21?11:06??Huffmancode\Huffmancode\bin\Debug\Huffmancode.exe

?????文件??????22016??2010-04-21?11:06??Huffmancode\Huffmancode\bin\Debug\Huffmancode.pdb

?????文件??????14328??2010-04-21?10:45??Huffmancode\Huffmancode\bin\Debug\Huffmancode.vshost.exe

?????文件????????490??2007-07-21?01:33??Huffmancode\Huffmancode\bin\Debug\Huffmancode.vshost.exe.manifest

?????文件?????????88??2010-04-10?12:51??Huffmancode\Huffmancode\bin\Debug\source?string.txt

?????文件???????2572??2010-04-08?02:46??Huffmancode\Huffmancode\Huffmancode.csproj

?????文件???????4475??2010-04-21?11:06??Huffmancode\Huffmancode\Huffmantree.cs

?????文件????????692??2010-04-21?11:06??Huffmancode\Huffmancode\Node.cs

?????文件????????650??2010-04-21?11:04??Huffmancode\Huffmancode\obj\Debug\Huffmancode.csproj.FileListAbsolute.txt

?????文件???????7680??2010-04-21?11:06??Huffmancode\Huffmancode\obj\Debug\Huffmancode.exe

?????文件??????22016??2010-04-21?11:06??Huffmancode\Huffmancode\obj\Debug\Huffmancode.pdb

?????文件????????660??2010-04-10?12:26??Huffmancode\Huffmancode\obj\Release\Huffmancode.csproj.FileListAbsolute.txt

?????文件???????7168??2010-04-10?12:25??Huffmancode\Huffmancode\obj\Release\Huffmancode.exe

?????文件??????19968??2010-04-10?12:25??Huffmancode\Huffmancode\obj\Release\Huffmancode.pdb

?????文件???????4654??2010-04-21?10:58??Huffmancode\Huffmancode\Program.cs

?????文件???????1386??2010-04-07?21:28??Huffmancode\Huffmancode\Properties\AssemblyInfo.cs

?????文件???????1674??2010-04-08?13:45??Huffmancode\Huffmancode\ve-B2.tmp

?????文件????????923??2010-04-07?21:28??Huffmancode\Huffmancode.sln

????..A..H.?????19968??2010-04-21?11:08??Huffmancode\Huffmancode.suo

?????目錄??????????0??2010-04-07?21:28??Huffmancode\Huffmancode\obj\Debug\TempPE

?????目錄??????????0??2010-04-09?13:47??Huffmancode\Huffmancode\obj\Release\TempPE

?????目錄??????????0??2010-04-10?18:32??Huffmancode\Huffmancode\bin\Debug

?????目錄??????????0??2010-04-21?11:06??Huffmancode\Huffmancode\obj\Debug

?????目錄??????????0??2010-04-10?12:25??Huffmancode\Huffmancode\obj\Release

?????目錄??????????0??2010-04-10?12:27??Huffmancode\Huffmancode\bin

?????目錄??????????0??2010-04-09?13:47??Huffmancode\Huffmancode\obj

?????目錄??????????0??2010-04-07?21:28??Huffmancode\Huffmancode\Properties

?????目錄??????????0??2010-04-21?11:06??Huffmancode\Huffmancode

?????目錄??????????0??2010-04-07?21:28??Huffmancode

............此處省略3個(gè)文件信息

評(píng)論

共有 條評(píng)論

相關(guān)資源