`
324012406
  • 浏览: 23955 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
适配器模式——将一个类的接口,转换成客户期望的另一个接口,让原本不兼容的类之间能够相互通信 假设我们有2个不同的接口: public interface ICat { public void catVoice(); } public interface IDog { public void dogVoice(); }   当继承自ICat接口的Cat对象不够用的时候,我们可以使用适配器模式,让一个继承IDog接口的Dog对象来冒充一下   public class Adapter implements ICat { ...
先看一个简单的例子,假设有接口ISubject: public interface ISubject { public void doSomething(); }  这是ISubject的实现Subject: public class Subject implements ISubject { /* (non-Javadoc) * @see ISubject#doSomething() */ @Override public void doSomething() { System ...
Splay Tree 是二叉查找树的一种,它与平衡二叉树、红黑树不同的是,Splay Tree从不强制地保持自身的平衡,每当查找到某个节点n的时候,在返回节点n的同时,Splay Tree会将节点n旋转到树根的位置,这样就使得Splay Tree天生有着一种类似缓存的能力,因为每次被查找到的节点都会被搬到树根的位置,所以当80%的情况下我们需要查找的元素都是某个固定的节点,或者是一部分特定的节点时,那么在很多时候,查找的效率会是O(1)的效率!当然如果查找的节点是很均匀地分布在不同的地方时,Splay Tree的性能就会变得很差了,但Splay Tree的期望的时间复杂度还是O(nlogn) ...
矢量         如果一条线段的端点是有次序之分的话,那么这种线段就称为 有向线段,如果有向线段p1p2的起点p1在坐标的原点,则可以把它称为矢量 p2 矢量的加减         设二维矢量 P = (x1, y1), Q = (x2, y2),则 P + Q = (x1 + x2, y1 + y2), P - Q = (x1 - x2, y1 - y2),且有 P + Q = Q + P, P - Q = -(Q - P) 矢量叉积         设矢量 P = (x1, y1), Q = (x2, y2),则 P * Q = x1 * y2 - x2 * y1; 其结果是一个由 ...
并查集 (Union-Find Sets) 是一种简单而用途广泛的高级数据结构 并查集可以描述这样一个逻辑结构:有若干个元素,将其分成若干个不相交的集合,每个集合相互独立 使用并查集可以方便地进行以下两种操作: 1、 判断两个元素是否属于同一个集合 2、 合并两个元素所在的集合 并查集机构的储存结构为一棵采用双亲表示法的树,通常用数组来储存。每个元素还有权值: #define MAX 1000 struct Union_Find_Sets { int parent; int rank; }set[MAX]; 其中parent的值为正数时,表示该节点的父 ...
第1章 为防止头文件被重复引用,应当用 ifndef/define/endif 结构产生预处理块 使用 #include<filename.h> 引用标准库头文件,使用 #include"filename.h" 引用非标准库头文件 头文件中只存放“声明”,不存放“定义” 第2章 ...
首先,我们看看前序、中序、后序遍历的特性: 前序遍历:     1.访问根节点     2.前序遍历左子树     3.前序遍历右子树 中序遍历:     1.中序遍历左子树     2.访问根节点     3.中序遍历右子树 后序遍历:     1.后序遍历左子树     2.后序遍历右子树     3.访问根节点 好了,先说说用前序遍历和中序遍历求后序遍历 假设前序遍历为 adbgcefh, 中序遍历为 dgbaechf 前序遍历是先访问根节点,然后再访问子树的,而中序遍历则先访问左子树再访问根节点 那么把前序的 a 取出来,然后查找 a 在中序遍历中的位置就得到 dgb a echf 那 ...
发现在项目开发的过程中,许多程序员往往因为赶项目进度而忽略了代码的质量,在这里我整理了一些基本的编码规范,希望对大家有用 1.对象间的比较判断 String str = "abc"; //Java和C++不同,对象间的相等判断不能使用 ==, != if (str == "bbc") { ... } 应写成 //想想为什么不写成 str.equals("bbc") 呢? if ("bbc".equals(str)) { ... } 或者是 //同一使用StringUt ...
Global site tag (gtag.js) - Google Analytics