樹與哈夫曼樹

2021-08-22 14:20:19 字數 2585 閱讀 9816

[code]

package tree;

public class treenode

package tree;

public class tree

public boolean isempty()

// 插入

public void insertbinarytree(int info) else

} else if (info < currentnode.info)

} }

} }

// 刪除

public void treedelete(int info) else if (tnode.llink == null || tnode.rlink == null) else

if (deletenode.llink != null) else

if (getfathernode(deletenode) == null) else else

} if (deletenode != tnode)

} // 搜尋

public treenode serach(int info)

// 搜尋

public treenode treeserach(treenode tnode, int info)

if (info < tnode.info) else

} // 最大節點

public treenode treemaximum(treenode tnode)

return tnode;

} // 最小節點

public treenode treeminimun(treenode tnode)

return tnode;

} // 找後繼

public treenode treesuccessor(treenode tnode)

treenode currentnode = getfathernode(tnode);

while (currentnode != null && tnode == currentnode.rlink)

return currentnode;

} // 找前驅

public treenode treeprecursor(treenode tnode)

treenode currentnode = getfathernode(tnode);

while (currentnode != null && tnode == currentnode.llink)

return currentnode;

} // 找節點的父節點

public treenode getfathernode(treenode tnode)

trailcurrent = current;

if (tnode.info < current.info) else

} return trailcurrent;

} // 中序遍歷

public void inorder(treenode tnode)

} // 列印樹

public void printtree()

// 前序遍歷

public void preorder(treenode tnode)

} // 後序遍歷

public void postorder(treenode tnode)

} public static void main(string args)

} [/code]

哈夫曼樹

[code]

package tree;

/**

* @author b.chen

*/ public class huffmantree

/**

* @param info

*/ public void addnode(int info) else

} /**

* 構造哈夫曼樹

*/ public void createhuffmantree()

root = nodelist[2 * length - 2];

} /**

* @return treenode

*/ public treenode getminimumnode()

} }

} }

visited[size] = true;

return tnode;

} /**

* 中序遍歷

* * @param tnode

*/ public void inorder(treenode tnode)

} /**

* 列印

*/ public void printhuffmantree()

/**

* @param args

*/ public static void main(string args)

} [/code]

哈夫曼樹與哈夫曼編碼

在一般的資料結構的書中,樹的那章後面,著者一般都會介紹一下哈夫曼 huffman 樹和哈夫曼編碼。哈夫曼編碼是哈夫曼樹的乙個應用。哈夫曼編碼應用廣泛,如 jpeg中就應用了哈夫曼編碼。首先介紹什麼是哈夫曼樹。哈夫曼樹又稱最優二叉樹,是一種帶權路徑長度最短的二叉樹。所謂樹的帶權路徑長度,就是樹中所有的...

哈夫曼樹與哈夫曼編碼

1.哈夫曼 huffman 編碼是哈夫曼樹的乙個應用。2.哈夫曼樹又稱為最優二叉樹,是一種帶權路徑長度最短的二叉樹。所謂樹的帶權路徑長度,就是樹中所有的葉結點的相對值乘上其到根結點的路徑和權值。3.影象jpg就是利用了哈夫曼編碼。4.哈夫曼樹是最優二叉樹,子樹有左右次序之分。5.哈夫曼樹的形態不是唯...

哈夫曼樹與哈夫曼編碼

哈夫曼樹是一種簡單的樹結構,建樹過程如下 給出一組資料,不斷選擇最小的兩個數,並用兩個數的和作為它們的parent節點,再從資料中刪除這兩個數,將兩個數的和加入資料中,直到所有的資料都被加入樹結構,形成一顆樹。這顆樹的所有非葉子節點都有兩個child,兩個child的值的和則是這個節點的值,根節點是...