哈夫曼樹 C

2021-06-06 06:19:13 字數 1580 閱讀 2381

這是我從網上抄來的,可以正常執行

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace 課本作業4_18第一次

set

}public int lchild

set

}public int rchild

set

}public int parent

set

}public string data

set

}public node()

public node(int w, int lc, int rc, int p ,string d)

}}

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace 課本作業4_18第一次

set

}public int leafnum

set

}public huffmantree(int n)

leafnum = n;

}public void create()

個葉子結點的權值", leafnum);

for (int i = 0; i < leafnum; i++)

個為:", i);

string s = console.readline();

int temp = int.parse(s);

data[i].weight = temp;

}console.writeline("請輸入個葉子結點的字元內容", leafnum);

for (int i = 0; i < leafnum; i++)

個為:", i);

string s = console.readline();

data[i].data = s;

}for (int i = 0; i < this.leafnum - 1; i++)

else if ((data[j].weight < min2) && (data[j].parent == -1))

}data[temp1].parent = leafnum + i;

data[temp2].parent = leafnum + i;

data[leafnum + i].weight = data[temp1].weight + data[temp2].weight;

data[leafnum + i].lchild = temp1;

data[leafnum + i].rchild = temp2;

}foreach (var item in data)}}

}

static void main(string args)

哈夫曼樹及哈夫曼編碼 C

說明 1.讀取檔案中需進行哈夫曼編碼的資料資訊 2.構造生成單節點二叉樹組 森林 3.構造哈夫曼樹 4.進行哈夫曼編碼 5.輸出對應資料及其編碼 include include includeusing namespace std const int max n 100 最大容量 const int...

哈夫曼編碼 哈夫曼樹

1.定義 哈夫曼編碼主要用於資料壓縮。哈夫曼編碼是一種可變長編碼。該編碼將出現頻率高的字元,使用短編碼 將出現頻率低的字元,使用長編碼。變長編碼的主要問題是,必須實現非字首編碼,即在乙個字符集中,任何乙個字元的編碼都不是另乙個字元編碼的字首。如 0 10就是非字首編碼,而0 01不是非字首編碼。2....

哈夫曼樹 哈夫曼編碼

定義從a結點到b結點所經過的分支序列為從a結點到b結點的路徑 定義從a結點到b結點所進過的分支個數為從a結點到b結點的路徑長度 從二叉樹的根結點到二叉樹中所有結點的路徑長度紙盒為該二叉樹的路徑長度 huffman樹 帶權值路徑長度最小的擴充二叉樹應是權值大的外界點舉例根結點最近的擴充二叉樹,該樹即為...