一、什么是最优二叉查找树最优二叉查找树:给定n个互异的关键字组成的序列K=,且关键字有序(k1= i时,需要从ki,...,kj中选择一个根kr,然后分别构造其左子树和右子树。下面需要计算以kr为根的树的期望搜索代价。然后选择导致最小期望搜索代价的kr做根。现在需要考虑的是,当一棵树成为一个节点的子...
                            
                            
                                分类:
Web程序   时间:
2014-09-04 14:43:09   
                                阅读次数:
290
                             
                         
                    
                        
                            
                            
                                数学家伯利亚在《怎样解题》里说过的解题步骤第二步就是迅速想到与该题有关的原型题。(积累的重要性!)对于这道题,可以发现其实和huffman算法的思想很相似(可能出题人就是照着改编的)。当然最后只是输出cost,就没必要建树什么的了。只要理解了huffman算法构造最优二叉树的思路,就按那么想就知道每...
                            
                            
                                分类:
其他好文   时间:
2014-08-27 23:12:38   
                                阅读次数:
233
                             
                         
                    
                        
                            
                            
                                1.树的路径长度
     树的路径长度是从树根到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。
2.树的带权路径长度(Weighted Path Length of Tree,简记为WPL)
  结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。
  结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积。
  树的带权路...
                            
                            
                                分类:
其他好文   时间:
2014-08-21 09:51:33   
                                阅读次数:
301
                             
                         
                    
                        
                            
                            
                                一、定义  一些定义:     节点之间的路径长度:在树中从一个结点到另一个结点所经历的分支,构成了这两个结点间的路径上的经过的分支数称为它的路径长度     树的路径长度:从树的根节点到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。     结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。     结点的带权路径长度:结点到树根之间的路径长度与该结点...
                            
                            
                                分类:
编程语言   时间:
2014-08-18 12:37:54   
                                阅读次数:
249
                             
                         
                    
                        
                            
                            
                                typedef int elemtype;
typedef struct 
{
  elemtype weight;
  int parent,l_child,r_child;
} binarytree;
//2、构建最优二叉树
void CreateHuffman(int leafnum, binarytree *huffmantree)
{
    //leafnum个叶子,决定nodenu...
                            
                            
                                分类:
其他好文   时间:
2014-08-17 14:22:32   
                                阅读次数:
280
                             
                         
                    
                        
                            
                            
                                \(O(nlogn)\)可能会超时,最优二叉树有\(O(n)\)的做法,当年合并果子全机房就我最快,哈哈。。开两个队列,一个存放未合并的节点,一个存放合并之后的子树,每次取最小时只需考虑这两个队列中的最小值即可,可以证明在队列内的元素单调。notice: 输入数据已经排好序了,Characters ...
                            
                            
                                分类:
其他好文   时间:
2014-08-11 08:22:41   
                                阅读次数:
459
                             
                         
                    
                        
                            
                            
                                赫夫曼树及其应用赫夫曼(Huffman)树又称最优树,是一类带权路径长度最短的树,有着广泛的应用。最优二叉树(Huffman树)1 基本概念① 结点路径:从树中一个结点到另一个结点的之间的分支构成这两个结点之间的路径。② 路径长度:结点路径上的分支数目称为路径长度。③ 树的路径长度:从树根到每一个结...
                            
                            
                                分类:
编程语言   时间:
2014-08-07 12:12:30   
                                阅读次数:
385
                             
                         
                    
                        
                            
                            
                                一、基本概念1、赫夫曼(Huffman)树又称最优二叉树或最优搜索树,是一种带权路径长度最短的二叉树。在许多应用中,常常赋给树中结点一个有某种意义的实数,称此实数为该结点的权。从树根结点到该结点之间的路径长度与该结点上权的乘积称为结点的带权路径长度(WPL),树中所有叶子结点的带权路径长度之和称为该...
                            
                            
                                分类:
其他好文   时间:
2014-07-26 00:33:36   
                                阅读次数:
255
                             
                         
                    
                        
                            
                            
                                一、     什么是哈夫曼树
是一种带权路径长度最短的二叉树,也称最优二叉树
带权路径长度:WPL=(W1*L1+W2*L2+W3*L3+...+ Wn*Ln)
N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,...n)。
 
二、     建立哈夫曼树
已知的一组叶子的权值w1,w2,w3……wn; 
①首先把 n 个...
                            
                            
                                分类:
其他好文   时间:
2014-07-16 09:01:13   
                                阅读次数:
327
                             
                         
                    
                        
                            
                            
                                Add All题意:最优二叉树(priority_queue实现)#include #include #include using namespace std;int main(int argc, char *argv[]){ int n, i, j, a, sum[6000]; pri...
                            
                            
                                分类:
其他好文   时间:
2014-07-13 20:03:13   
                                阅读次数:
218