如何建立一棵哈夫曼树并且输出压缩码
摘要:算法:1、给定一个具有n个权值{ w1,w2,………wn }的结点的集合 F = { T1,T2,………Tn } 2、 初始时,设集合 A = F。 3、 执行 i = 1 至 n -1 的循环,在每次循环时执行以下操作 从当前集合中选取权值最小、次最小的两个结点,以这两个结点作为内部结点 bi 的左右儿子,bi 的权值为其左右儿子权值之和。 在集合中去除这两个权值最小、次最小的结点,并将内部结点bI 加入其中。这样,在集合A中,结点个数便减少了一个。 这样,在经过了n-1 次循环之后,集合A中只剩下了一个结点,这个结点就是根结点。哈夫曼树的存储:在哈夫曼树中,每个要编码的元素是一个叶结点(度
阅读全文
posted @ 2013-01-16 15:18
浙公网安备 33010602011771号