class HaffmanNode //哈夫曼樹(shù)的結(jié)點(diǎn)類(lèi)
專(zhuān)注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)柳河免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
{
int weight; //權(quán)值
int parent,left,right; //父母結(jié)點(diǎn)和左右孩子下標(biāo)
public HaffmanNode(int weight)
{
this.weight = weight;
this.parent=-1;
this.left=-1;
this.right=-1;
}
public HaffmanNode()
{
this(0);
}
public String toString()
{
return this.weight+", "+this.parent+", "+this.left+", "+this.right;
}
return code;
}
public static void main(String[] args)
{
int[] weight={5,29,7,8,14,23,3,11}; //指定權(quán)值集合
HaffmanTree htree = new HaffmanTree(weight);
System.out.println("哈夫曼樹(shù)的結(jié)點(diǎn)數(shù)組:\n"+htree.toString());
String[] code = htree.haffmanCode();
System.out.println("哈夫曼編碼:");
for (int i=0; icode.length; i++)
System.out.println(code[i]);
}
}
1)編寫(xiě)函數(shù)實(shí)現(xiàn)選擇parent為0且權(quán)值最小的兩個(gè)根結(jié)點(diǎn)的算法
2)編寫(xiě)函數(shù)實(shí)現(xiàn)統(tǒng)計(jì)字符串中字符的種類(lèi)以及各類(lèi)字符的個(gè)數(shù)。
3)編寫(xiě)函數(shù)構(gòu)造赫夫曼樹(shù)。
4)編寫(xiě)函數(shù)實(shí)現(xiàn)由赫夫曼樹(shù)求赫夫曼編碼表。
5)編寫(xiě)函數(shù)實(shí)現(xiàn)將正文轉(zhuǎn)換為相應(yīng)的編碼文件。
6)編寫(xiě)函數(shù)實(shí)現(xiàn)將編碼文件進(jìn)行譯碼。
7)編寫(xiě)主控函數(shù),完成本實(shí)驗(yàn)的功能。
只要自己再加個(gè)類(lèi)Tree就可以了。
代碼如下:
public class Tree {
double lChild, rChild, parent;
public Tree (double lChild, double rChild, double parent) {
this.lChild = lChild;
this.rChild = rChild;
this.parent = parent;
}
public double getLchild() {
return lChild;
}
public void setLchild(double lChild) {
this.lChild = lChild;
}
public double getRchild() {
return rChild;
}
public void setRchild(double rChild) {
this.rChild = rChild;
}
public double getParents() {
return parent;
}
public void setParents(double root) {
this.parent = root;
}
}
可以在Dog與Cat類(lèi)中重寫(xiě)Animal中的animalDo方法,通過(guò)調(diào)用animalDo方法,
然后會(huì)自動(dòng)根據(jù)不同的實(shí)例調(diào)用不同類(lèi)中的方法(多態(tài)知識(shí))。