给定一篇文章,求它的哈夫曼编码。 首先,统计词频(一般用HashMap来做); 随后,创建一个优先队列,将TreeNode按词频由小到大出队; 入队方法用offer(),出队方法用poll(); 他们与add/remove不同,队满或队空时不会抛异常而是返回false。 TreeNode,应包含词频、Char、左右儿子四个信息; 从优先队列中出队两个元素,创建一个新的TreeNode对象,词频(权重)为两个儿子节点的和,char置为null,并offer到队列中; 重复,直到队只有一个元素,将这个元素出队,他就是树…

2017年9月30日 0条评论 6点热度 阅读全文

一,问题由来        货郎担问题也叫旅行商问题,即TSP问题(Traveling Salesman Problem),是数学领域中著名问题之一。      二,问题描述         1)货郎担问题提法:有n个城市,用1,2,…,n表示,城i,j之间的距离为dij,有一个货郎从城1出发到其他城市一次且仅一次,最后回到城市1,怎样选择行走路线使总路程最短?           &n…

2014年11月13日 0条评论 4点热度 阅读全文

/* Code by : EricYou     http://www.cnblogs.com/yxin1322 Date: 2006.1.14   */ #include <stdio.h> #include <stdlib.h> #include <conio.h> /*链表节点存储的数据*/ typedef char ElemType; /*链表节点结构*/ typedef struct LinkListNode { ElemType data; struct LinkLi…

2011年11月28日 0条评论 0点热度 阅读全文

/* Code by : EricYou     http://www.cnblogs.com/yxin1322 Date: 2006.1.14   */ #include <stdio.h> #include <stdlib.h> #include <conio.h> /*链表节点存储的数据*/ typedef char ElemType; /*链表节点结构*/ typedef struct LinkListNode { ElemType data; struct LinkLi…

2011年11月28日 0条评论 0点热度 阅读全文

package arithmetic; /** * Java实现KMP算法 * * 思想:每当一趟匹配过程中出现字符比较不等,不需要回溯i指针, * 而是利用已经得到的“部分匹配”的结果将模式向右“滑动”尽可能远 * 的一段距离后,继续进行比较。 * * 时间复杂度O(n+m) * * @author xqh * */ public class KMPTest { public static void main(String[] args) { String s = "abbabbbbcab"; // 主串 Str…

2011年9月26日 0条评论 4点热度 阅读全文

B-树又称为多路平衡查找树,是一种组织和维护外存储文件系统非常有效的数据结构。B-树中所有结点的孩子结点的最大值被称为B-树的阶,通常用m表示,B-树满足以下条件: 树中每个结点至多有m个孩子结点,至多有m-1个关键字 除根结点外,其他结点至少有(m+1)/2个孩子结点 若根结点不是叶子结点,则根结点至少有两个孩子结点 每个结点的结如下: n p0 k1 p1 k2 p2 ... kn pn 其中,n代表是关键字个数,p指孩子结点,k指关键字集合 所有叶子结点都在同一层 B-树的构造 从一个空树开始,可以通过不断地…

2010年7月28日 0条评论 8点热度 阅读全文