`
huhu_long
  • 浏览: 72467 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
二叉树 - 所有节点的度都不大于2的树。 存储结构 - 顺序和链式 对于顺序存储结构, 当二叉树为完全二叉树的时候才能够不浪费存储空间, 否则对空间的浪费是很大滴。 而对于链式存储结构, 分三域节点和四域节点 三域 - Data + lChild + rChild 四域 - Data + lChild + parent + rChild ----------------------------- 我是分割线 ---------------------------- 二叉树的基本操作: 先序, 中序 和 后序遍历 先定义node public class Node { priva ...
分治法的基本思想在上回的递归中已经讲的差不多了。 就是将规模较大的问题分解成规模较小的问题。 T(n) = aT(n/b) + f(n) (a>=1; b>1) T(n) 就是规模为n的问题, 可以分解成a个规模为n/b的同类型的问题, 再加上分解过程的开销(汉诺塔的move, 布尔组合的set value)。 虽说对无序的序列采取分治没什么意义, 但这里仅仅只是用来说明分治的思想, 故例与此。 例: 从数组中找出最大、最小值 【方法一】 int min = a[0], max = a[0]; for(int i = 1; i < a.length; i++) { ...
递归的思想其实很简单, 就是可以将解原始问题分解成为解规模较小的同类问题。 简单地说, 如果一个算法间接或直接地调用自身, 则可以称这个算法是递归算法。 递归算法会由两部分组成: 递归调用 + 递归终止条件 先看 ...
大家都知道栈是先进后出的一种数据结构。。。 栈是运算受限的线性表(队列也一样), 其实现有顺序存储(数组)和链式存储(链表)两种实现方式。 由于栈的先进后出的特性, 使得它可以在很多场合下都可以大显身手: ...

三个忠告

转自同事QQ空间。。。 一、不要试图寻找不可能的捷径,世上没有便宜的事,只有脚踏实地才是最好的方法…无论做何事。 二、不要对明知不是好事的事过分好奇,有可能你会因此而丧命。 三、不要在冲动时做任何决定,否则这个决定就有可能成为你一辈子的遗憾。

html2text

一个有用的方法, bak一下 public String html2Text(String inputString) { String htmlStr = inputString; String textStr = ""; java.util.regex.Pattern p_script; java.util.regex.Matcher m_script; java.util.regex.Pattern p_style; java.util.regex.Matcher m_style; java.util.regex.Pattern p_ht ...
FilenameFilter顾名思义,就是通过名字来过滤掉一些文件。 这个接口很简单, 不用多解释, 就只有一个accept方法: boolean accept(File dir, String name); 那来看看第一种实现 - 创建一个实现类 public class ForFun { public static void main(String[] args) { File path = new File("."); String[] nameList = path.list(new DirFilter(".class&quo ...
Pascal Long (Nominated by Simon wang, Manivel Jaganathan, Justin Smith) Pascal Long joined CRM On Demand group as soon as he joined Perficient GDC in Apr 2010. He started working for Broadcom CRMOD project since June 1st 2010 right after he finished the CRMOD training. As Offshore Lead, Pascal traine ...
备忘录模式有叫备份模式, 相信这个概念很好理解。 大家都玩过游戏, 杀过怪, 升过级。。。 在被Boss杀死之后只需要恢复到死之前的那一关就可以了。 那我们来看看是怎样实现的 先看看这个游戏, 游戏可以存档和恢复 pu ...
很多童鞋可能都会有这样的问题, 为什要重写equals和hashCode方法呢? 什么情况下我们会需要重写这些方法呢? 好, 简单的讲, 当我们在使用集合框架, 如: HashSet, HashTable, HashMap的时候, 才有可能用到这些。 为什么说“有可能”呢? 因为并不是所有情况都需要, 废话! 想想我们一般在什么情况下需要用到这些集合框架呢?答案肯定是用来存取数据嘛。 没错, 那我们用什么来取数据呢? 当然一般用key来取啦。 很好, 那我们的key可以是什么类型的呢? - Object 既然是Object, 那么基本类型对应的包装类型和String也应该在这个范畴之内吧。 ...
今天看书突然碰到有符号二进制的概念。。。除了还记得高位0表示正数, 1表示负数之外, 死活都想不起来怎样把负的二进制转换为十进制了。 马上google了一下, 原来取反加1就是负数的值, 比如一个32位的有符号二进制数: 11111111111111111111111111111111 取反 (又叫反码, 正数的反码为本身) 00000000000000000000000000000000 加1  (有叫补码, 正数的补码也是本身) 00000000000000000000000000000001 于是就可以知道它表示十进制的 -1 晕死, 忘老本。。。 强烈鄙视一下自己
Java字节码 - Java程序由Java编译器翻译后交给Java虚拟机(JVM)翻译成机器语言的一种非机器语言。 这种由JVM翻译字节码语言成机器语言的程序叫解释器。解释器将每条字节码指令翻译成为机器语言所表达的指令, 然后在计算机上 ...

门面模式

没看过门面模式(facade)的童鞋也许会好奇门面模式到底是啥样的模式。。。其实很简单, 一般人在实际的项目开发当中都用过。 现在几乎所有的项目在设计上都会采取分层, 什么Dao, Service, Control, View... 那好, 相信大家都有过Dao和Service层开发的经历。 那么你是否经常会碰到在一个Service里面对多个Dao的方法进行调用呢? 没错, 你猜对了, 这就是门面模式的大致模型。。。 是不是够简单, 原来自己一直都在用。。。 好了, 少废话, 先看看我们设计两个Dao层的接口: public interface IUserDao { boolean ...
观察者模式又叫做发布订阅模式。。。 个人感觉这两种叫法代表的含义完全不一样。 观察者模式  -  感觉在别人背后偷偷摸摸的 发布订阅模式  -  光明正大 whatever... 当今社会有钱人到处都是, 古人有云: 男人有钱就变坏 (好像不是古人说的吧。。。) 虽然不全对, 但也确实大有人在。 下面我们就老婆请电视台监视老公私会小三为背景来讲解观察者模式。 (不知大家有没看过 “大城小说”, 以前叫“好奇害死猫”, 里面就经常有这样的事情) 好啦, 进入正题, 我们先来定义观察者接口 public interface Observer { // 电视台如果发现什么就马上通知我 ...

组合模式

Compose objects into TREE structures... 所以当碰到树形结构时, 我们就应该考虑是否可以用Composite模式。 下面我们以一般网站的导航栏来做介绍。 没个Item都对应一个节点, 节点存储了导航的URL 组合模式又分为: 。安全模式 。透明模式 那么先来看看安全模式是怎样滴。 定义一个Node抽象类, 灰常简单, 暴露两个属性 public abstract class Node { private String name; private String url; public String getName() { re ...
Global site tag (gtag.js) - Google Analytics