最新文章列表

浅谈数据结构与构建哈夫曼树

数据结构是什么?一开始听到这个名词的时候,觉得一听就深奥难懂。细细一想,“数据结构”,顾名思义就是数据的结构,是计算机存储数据时用的结构。后来学习这门课,才明白数据结构和效率是密切相关的,编写程序的人要让计算机更加高效的工作,这就涉及到算法。所以我觉得数据结构与算法是密切相关的。 不管是什么语言,似乎学习过程中都有一个必不可少的步骤,就是排序。什么冒泡排序,选择排序,快速排序,堆排序。刚开始总有不解 ...
shen_xy 评论(0) 有646人浏览 2014-10-04 12:15

哈夫曼树和编码

    哈夫曼树:所有的叶子节点的加权路径和最小的     哈夫曼编码:每个叶子节点的编码  从跟节点到达该叶子节点经历的路径(枝节点)  左 ...
百合不是茶 评论(0) 有1136人浏览 2014-07-21 20:14

数据结构-哈夫曼树

哈夫曼树:最优树,带权路径长度最短的树 概念:路径:从树中一个节点到另外一个节点之间的分支构成连个节点之间的路径,如上图:R到D之间的路径为2,R到H之间路径为3路径长度:路径上分支的数目树的路径长度:从树根到每一个节点的路径长度之和比如R到A,B,C,D,E,F,G,H,K路径长度之和18树的带权路径长度:树中所有叶子节点的带权路径路径长度之和:WPL=∑_(k-1)^n▒WkLk 其中Wk为 ...
nicky19870612 评论(0) 有399人浏览 2014-06-21 12:54

哈夫曼编码小结

哈夫曼树 哈夫曼树是一最优二叉树,假设有n个字节点Tn{T1,T2,……,Tn}的权值分别为 Wn{W1,W2,……,Wn},其构造方法 step1:想找出里面权值最小的两个节点,作为新建父节点的左右子树,父节点的权值step2:为这两个子节点的权值之和在Tn中将父节点的左右子树删除,并将父节点加进step3:重复1、2步,直到Tn只剩一个节点为止。 哈夫曼编码:当建好树后,从根开始,每层左子树标 ...
沉沦的夏天 评论(0) 有2124人浏览 2014-03-22 15:50

Netjava project 压缩的实现(1)——哈夫曼树

我们都用过压缩软件,今天我们要讲的就是压缩软件的一种方法——哈夫曼树! 哈夫曼树其实是二叉树的一种。我们给定一些权值作为二叉树的叶子节点,来构建一个二叉树,若带权路径长度达到最小,这样的二叉树成为最优二叉树,也就是我们说的哈夫曼树。我们今天不仅要构建一个哈夫曼树,还要实现压缩一个字符串,让字符串以更短的方式表现出来。   准备工作:进行节点和编码类的设置。Node类: public cl ...
felixour 评论(0) 有1011人浏览 2013-08-09 01:22

文件的压缩与解压缩

       上篇博客学习了哈夫曼树,也自己动手建立了一棵哈树。接下來,我们将在原本的基础上更进一步。通过哈弗曼编码来实现对文件的压缩与解压缩。-----------   下面进入正题。         要实现的目标   :利用哈夫曼编码思想,设计对一个文本文件(.txt)中的字符进行哈夫曼编码,生成编码压缩文件,并且还可将一个压缩后的文件进行解码还原为原始文本文件(.txt)。     对 ...
wuzexin530 评论(1) 有1690人浏览 2013-05-21 23:34

再次学习哈弗曼

       还记得第一次接触哈夫曼树是在大二的数据结构课上,大家也都知道哈树的生成规则,很简单也很容易理解。给你N个带权的节点,让你生成一颗哈树,相信大部分人都没有问题。而正是这种表面看似很简单的东西,我们就容易无视。我坦白,那年数据结构的学习,对于哈树这一块,我没有敲过一行代码,更没有去想过他存在的意义以及利用哈树能解决什么样的问题。        大三进入蓝杰,重新接触到了哈夫曼树。这个 ...
wuzexin530 评论(0) 有852人浏览 2013-05-21 17:23

java实现哈夫曼树

                       哈夫曼树的生成 哈夫曼树又叫做最优二叉树,是一种带权值路径最短的树,这种树在信息检索等方面都很重要。构造 ...
茖-荌 评论(0) 有3823人浏览 2012-09-22 23:14

哈夫曼树与压缩

哈夫曼与压缩 带权路径长度(WPL): 二叉树的带权(外部)路径长度是树的各叶结点所带的权值wi与该结点到根的路径长度li的乘积之和。 一、哈夫曼树         哈夫曼树又称“最优树”,是带权路径长度达到最小的二叉树。 特点:在哈夫曼树中,权值越大的结点离根越近。 构建哈夫曼树: 1、由给定的n个权值,构造具有n棵二叉树的森林,其中每棵二叉树值有一个带权值的根结点其左右子树为空; 2、重 ...
小路青青0113 评论(2) 有2259人浏览 2012-07-31 21:10

POJ 3253--Fence Repair

在写这道题之前,先介绍几点知识。 一、动态规划(DP) 动态规划(dynamic programming)是求解决策过程最优化的数学方法。早在20世纪50年代初美国数学家 ...
believexkx 评论(0) 有2513人浏览 2012-07-26 22:31

构造哈夫曼树

1.算法说明 就是建造哈夫曼树树,从而使得构造出的树带权路径长度最小   2.步骤   输入叶子结点个数n; 创建长度为2*n-1的数组并初始化; while(i<n) 循环输入n个叶子结点的权值; while(n-1次循环建立树){ 在parent==-1的元素中查找权最小的两个结点; 合并两个叶子结点,并加入新结点到数组; }   3.代码 //构造h ...
hao3100590 评论(0) 有1228人浏览 2012-07-04 10:40

浅谈 二叉树

           刚刚结束的上学期被编译原理折腾个半死,以为终于熬过去了,没有想到才过了几天,又要重新面对这个东西。其实,二叉树或者树, ...
Jonathan樊 评论(1) 有2050人浏览 2011-08-12 07:59

哈夫曼树小结

所谓哈夫曼树,又称为最优二叉树,要了解哈夫曼树,首先先来了解几个概念。树中一个结点到另一个结点之间的分支构成这两个结点之间的路径,路径上分支数目称为路径长度。树的长度是指从根结点到每一个叶子结点的路径长度之和。结点的带权路径长度为从从该结点到根结点之间的路径长度与结点上的权值的乘积。哈夫曼树就是带权路径长度最小的二叉树。现在我们可以根据给的任意一个整型数组构造一颗哈夫曼树,构造的思路是将数组中的每一 ...
剑&箫 评论(0) 有3126人浏览 2011-08-12 00:44

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics