数据结构Java8二叉树与树

loading 分享 2026-7-18 下载文档

//x2记下次最小权值结点的下标 }

huftree[x1].parent = n+i; //将找出的两棵权值最小的子树合并为一棵子树 huftree[x2].parent = n+i; this.huftree[n+i] = new

TriElement(huftree[x1].data+huftree[x2].data, -1, x1, x2); } }

public String toString() {

String str=\树的结点数组:\\n\; for (int i=0; i

从叶结点开始向上搜索,是左孩子原串的左边加“0”,是右孩子原串的左边加“1”。思路与链表的搜索相同。

public String[] huffmanCodes() //返回当前Huffman树的Huffman编码 {

String[] hufcodes = new String[this.leafNum]; for(int i=0; i

hufcodes[i]=\; int child = i;

int parent = huftree[child].parent;

while (parent!=-1) //由叶结点向上直到根结点循环 {

if (huftree[parent].left==child)

hufcodes[i]=\+hufcodes[i];

//左孩子结点编码为0 else

hufcodes[i]=\+hufcodes[i]; //右孩子结点编码为1

child = parent;

parent = huftree[child].parent; } }

return hufcodes; } }

(4) Huffman树上的搜索,求每个结点的路径长度

public int[] huffmanH() //返回当前Huffman树的Huffman编码 {

int[] hufcodes = new int[this.leafNum];

for(int i=0; i

hufcodes[i]=0; int child = i;

int parent = huftree[child].parent;

while (parent!=-1) //由叶结点向上直到根结点循环 {

hufcodes[i]++; child = parent;

parent = huftree[child].parent; } }

return hufcodes; } //调用

int hh[]=ht.huffmanH();

System.out.println(ht.toString());//哈夫结点 for (int i=0; i

7.哈夫曼编码SMU1463、1287、1288 求最小费用Smp1053 三、树

课后任务:完成课堂上的例子,自觉在SMUOJ,POJ上做题.

SMU1259、1261、1262、1263、1265、1273、1286、1288、1465、1580、

\+weight[i]+\

1603、1607

POJ3437、2499、2255、1145、1095、2309、1577 课后记:


数据结构Java8二叉树与树.doc 将本文的Word文档下载到电脑
搜索更多关于: 数据结构Java8二叉树与树 的文档
相关推荐
相关阅读