`
wuzexin530
  • 浏览: 18577 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
文章列表
       上篇博客学习了哈夫曼树,也自己动手建立了一棵哈树。接下來,我们将在原本的基础上更进一步。通过哈弗曼编码来实现对文件的压缩与解压缩。-----------   下面进入正题。         要实现的目标   :利用哈夫曼编码思想,设计对一个文本文件(.txt)中的字符进行哈夫曼编码,生成编码压缩文件,并且还可将一个压缩后的文件进行解码还原为原始文本文件(.txt)。     对问题的分析:本程序我们只针对纯文本文件(.txt)的压缩。为了使文件尽可能的缩短,可以对文件中每个字符出现的次数进行统计。设法让出现次数多的字符的二进制码短些,而让那些很少出现的字符的二进制码长一些。 ...
       还记得第一次接触哈夫曼树是在大二的数据结构课上,大家也都知道哈树的生成规则,很简单也很容易理解。给你N个带权的节点,让你生成一颗哈树,相信大部分人都没有问题。而正是这种表面看似很简单的东西,我们就容易无视。我坦白,那年数据结构的学习,对于哈树这一块,我没有敲过一行代码,更没有去想过他存在的意义以及利用哈树能解决什么样的问题。        大三进入蓝杰,重新接触到了哈夫曼树。这个沉寂在我脑海已久且濒临消亡的知识点,仿佛又渐渐地回来了。也让我开始思考哈夫曼树存在的意义。在IT这么一个日新月异的领域,一个技术之所以能够存在,一定是有其价值的,他一定是能给我们决绝问题带来利益的。通 ...
好久没有上新课啦~  今天学习了链表方面的内容,完成了一些作业。 个人小总结:之前学过C、C++,因此对链表也有所了解,也知道它是用指针来实现的。现在接触了java的链表,由于java中没有了指针这一概念,因此我们必须找到一个可以替代C或C++中指针的东西。那么我们就用到了对象的引用,用它来代替指针。 链表其他的操作感觉和C、C++的差不多,这里就不多做解释啦~!~ 下面是作业的完成情况(总共是5道题,粘贴部分代码): 1.单链表排序(部分代码) package cjl.list; /* * 链表的结点类 */ public class Node { int obj;/ ...
    今天学习了java的异常机制,下面对此做一个小小的总结。 1.什么是java异常:     异常情况是指在程序运行时,可能由于外部系统的条件变更(与我们所设想的不一致)时而导致的程序可能会出现的错误,比如我们链接数据库,但数据库未启动,要创建目录,操作系统上却已经存在同名的真是文件了。 2.什么是错误:     错误是VM的一个故障(虽然它可以是任何系统级的服务)。所以,错误是很难处理的,一般的开发人员(当然不是你)是无法处理这些错误的。比如内存溢出; 3.异常与错误之间的区别:     在我看来哈~异常和错误都是会被抛出来的,只是异常情况我们(程序员)可以去处理,改正。但是错误情 ...
   今天老师为我们讲了集合框架的一些内容,下面我从这几个方面进行总结。   1.什么是集合框架?      2.list,set,map三者的特点及基本使用。       ①.熟悉List接口,了解何时以及如何使用ArrayList或者LinkedList来存储元素    ②熟悉Set接口,了解何时及如何使用HashSet,LinkedHashSet或TreeHashSet来存储元素    ③理解Collection和Map的区别,知道何时及如何使用HashMap,LinkedHashMap,TreeHashMap来存储[/color] ===================== ...
五子棋之人机对战思路: 1,棋盘与棋子的实现 2,玩家下完棋后,计算机要根据当前玩家所下的棋子找出最佳下棋点 3,输赢的判断 之前已经把人人对战的大概方法实现了,接下要实现的是人机的对战。我的思路如下(当然只是思路哈~还没具体实现呢):     其实人机对战就是就在我们下完一步起后,通过电脑分析下一步该走哪,对此做出判断并在最佳的位置上出棋。 1,首先需要定义权值,我做的是防守的方式。    通常当我下玩一步棋走后,电脑会分别对我周围的八个方向(上、下、左、右、左斜上、右斜上、左斜下、右斜下)进行遍历,判断当前的局势。     具体权值定义如下:         活一连:10   ...
    今天终于是把五子棋之人人大战的基本功能实现了,本来是想把界面美化一下再写总结的。唉,后来发现还是算了吧。这个java搞界面真的不适合啊,于是乎先把总结写了再说,那些美化,以及功能的完善什么的等晚点在慢慢去弄吧。      那么,下面咱们进入正题,一起探讨一下其实现方法。 一、界面     界面这东西java真心不适合弄啊,方正我是觉得好费心的。我的棋盘界面很简单朴素,就是由rows根横线和columns根竖线组成。具体代码如下:      1.棋盘的绘制 public void paint(Graphics g){ //调用父类paint方法 super.paint( ...
    今天学习了关于继承的一些东西,之前学C++的时候也有一点点了解。就是指一个对象直接使用另一对象的属性和方法,主要是为了实现代码的重用。     如A继承了B,那么A就是B的子类,B是A的基类(父类),那样,A就具备了B的一些属性和方法,当然,你也可以对其父类的方法进行重写。     继承的格式:public class A extends B  {   };       注:java中继承与C++中的区别是:Java中的类只支持单继承,接口可以多实现。即java不能继承多个类,不能连写extends,而用implements代替     关于自动转型,指的是子类对象会自动转变为父类类 ...
    第一次接触了java这门变成语言,感觉它挺有意思,很新颖。     今天,我学习了关于类和对象那方面的知识,下面,我就将我所学到的一些东西做一个小小的总结吧。        首先了解OOP(Object Oriented Programming),也就是我们常说的面向对象编程了, java作为一个面向对象变成语言,自然而然我们就一定要对类和对象有一定的了解。      类,相信刚接触java的同学,同到这词的时候,或多或少都会有些犯迷糊,会跟对象弄混。所谓类,在我们日常生活中,我们是这样理解的:一类人,一类动物,一类器材等等,我们将划分到一个类中,条件是因为他们具有相同点.即相同的行为 ...
Global site tag (gtag.js) - Google Analytics