边城愚人

如果我不在边城,我一定是在前往边城的路上。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  30 随笔 :: 0 文章 :: 67 评论 :: 0 Trackbacks

2007年6月21日 #

     摘要: 最近在看一个程序,该程序的图形界面采用SWT编写。想要将程序运行起来首先需要做的就是将swt(jface)包放到类路径上,swt包可以从http://www.eclipse.org/swt下载(其中除了swt包还有和操作系统相关的文件),和swt开发相关的插件为VE。一切就绪,运行程序发现了“Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3232 in java.library.path ”的错误(我的操作系统为Ubuntu7.04)。解决方案有多种,这里只介绍我使用的一种方法。  阅读全文
posted @ 2007-06-21 09:11 kafka0102 阅读(555) | 评论 (1)编辑 收藏

     摘要: 哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度记为WPL=(W1*L1+W2*L2+W3*L3+...+ Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,...n)。可以证明哈夫曼树的WPL是最小的。
构造哈夫曼树的算法如下:
1)对给定的n个权值{W1,W2,W3,...,Wi,...,Wn}构成n棵二叉树的初始集合F={T1,T2,T3,...,Ti,..., Tn},其中每棵二叉树Ti中只有一个权值为Wi的根结点,它的左右子树均为空。
2)在F中选取两棵根结点权值最小的树作为新构造的二叉树的左右子树,新二叉树的根结点的权值为其左右子树的根结点的权值之和。
3)从F中删除这两棵树,并把这棵新的二叉树同样以升序排列加入到集合F中。
4)重  阅读全文
posted @ 2007-06-21 08:23 kafka0102 阅读(2885) | 评论 (2)编辑 收藏