摘要: //Huffman树的构造就不赘述了,使用优先队列每次选择队头的两个数并将其出列,相加后将结果放入队列中,直到队列为空为止.#include <iostream>#include <queue>#include <vector>#include <string>#include <iomanip>#include <algorithm>using namespace std;int main(){ int i,j,k; string s; while(1)//cin遇到空格结束 { getline(cin,s); if(s 阅读全文
posted @ 2012-08-08 19:42 加拿大小哥哥 阅读(598) 评论(0) 推荐(1)
摘要: /*有一个农夫要把一个木板钜成几块给定长度的小木板,每次锯都要收取一定费用,这个费用就是当前锯的这个木版的长度给定各个要求的小木板的长度,及小木板的个数n,求最小费用38 8 5为例:长度为 21 的木板,截成13和8花费 21再从长度为13的木板上锯下长度为5的木板,花费13 共21+13 =34*/#include <iostream>#include <queue>#include <vector>using namespace std;int main(){ int i,j,k,T; __int64 num,sum=0; while(cin>& 阅读全文
posted @ 2012-08-08 16:25 加拿大小哥哥 阅读(424) 评论(0) 推荐(0)
摘要: 一、概念 树的路径长度:树的路径长度是从树根到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。 结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。 结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积。 树的带权路径长度(Weighted Path Length of Tree):定义为树中所有叶结点的带权路径长度之和,通常记为:其中: n表示叶子结点的数目 wi和li分别表示叶结点ki的权值和根到结点ki之间的路径长度。 树的带权路径长度亦称为树的代价。 哈夫曼树或最优二叉树:在权为wl,w2,…,w... 阅读全文
posted @ 2012-08-08 13:45 加拿大小哥哥 阅读(638) 评论(0) 推荐(0)
摘要: 一、定义 二叉查找(搜索)树(Binary Search Tree)。其定义为:二叉查找树或者是空树,或者是满足如下性质的二叉树: ①若它的左子树非空,则左子树上所有结点的值均小于根结点的值; ②若它的右子树非空,则右子树上所有结点的值均大于根结点的值; ③左、右子树本身又各是一棵二叉查找树。 上述性质简称二叉查找树性质(BST性质),故二叉查找树实际上是满足BST性质的二叉树。二、特点 由BST性质可得: (1) 二叉查找树中任一结点x,其左(右)子树中任一结点y(若存在)的关键字必小(大)于x的关键字。 (2) 二叉查找树中,各结点关键字是惟一的。注意:实际应用中,不能保... 阅读全文
posted @ 2012-08-08 13:30 加拿大小哥哥 阅读(881) 评论(0) 推荐(0)
摘要: #include <iostream>#include <string>using namespace std;typedef struct Node{ char data; Node *lchild,*rchild;}Node,*Bitree;Bitree creat(string s1,string s2){ if(s1.length()==0) return NULL; Node *root; root = new Node; root->data = s1[0];//第二次做,竟然忘家了 size_t pos = s2.fi... 阅读全文
posted @ 2012-08-08 09:21 加拿大小哥哥 阅读(354) 评论(0) 推荐(0)