摘要:
【1】什么是堆?堆是一种特殊的完全二叉树(关于完全二叉树可以参见随笔《树》)。堆分为两种:最大堆和最小堆最大堆只需要满足父节点大于两个子节点,而子节点之间没有要求。最小堆只需要满足父节点小于两个子节点,而子节点之间没有要求。那么,既然作为一棵完全二叉树,每层中的节点应该是从左到右填满的。如果一个节点没有左儿子,那么它一定也没有右儿子。并且在第N层中如果存在节点,肯定是由左向右依次排列,而且第N-1层必须是填满的。【2】堆的实现最小堆的实现代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using... 阅读全文
posted @ 2013-12-02 19:06
kaizenly
阅读(1388)
评论(0)
推荐(1)
摘要:
【1】赫夫曼树基本概念 别名“最优树”,是一种带权路径最短的树。 (1)路径:从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。 (2)路径长度:路径上的分支数目。 (3)树的路径长度:从树根到一每结点的路径长度之和。 (4)结点的带权路径长度:从该结点到树根之间的路径长度与结点上权值的乘积。 (5)树的带权路径长度:树中所有叶子结点的带权路径长度之和。记作:WPL 【2】赫夫曼树的构造 (1)由给定的n个权值{W1,W2,…,Wn}构成n棵二叉树的集合F={T1,T2,…,Tn} 其中每棵二叉树Ti中只有一个带权为Wi的根节点,其左右子树均空。 (2)在F中选取根结点的权值最小和 阅读全文
posted @ 2013-12-02 14:29
kaizenly
阅读(6655)
评论(0)
推荐(0)

浙公网安备 33010602011771号