- 博客(12)
- 收藏
- 关注
原创 设计模式-02-观察者模式
观察者模式,顾名思义,就是有人在做,有人在看。所以,观察者模式涉及到两个群体,观察者和被观察者,比如说订阅新闻,某网站提供新闻拱客户阅读,只要客户订阅了该网站新闻,每当网站提供新的新闻素材时,就会通知客户,客户收到相应通知后更新新闻列表,如果客户取消订阅,那么网站有更新时,客户就不会收到新闻,这里网站就是被观察者,客户就是观察者,他们以及他们之间的订阅关系构成了观察者模式的一个例子。定义:观察者模...
2012-01-30 10:10:04 99
原创 设计模式-01-策略模式
策略?听起来很有智慧,其实,只是名字唬人而已。策略,通俗的说就是针对某个问题,大家出谋划策,以不同的方式达到解决问题的效果。打个比方,现在是春节,大家吃喝玩乐不亦乐乎,那就说吃饭吧,有时我们细嚼慢咽,而有时就狼吞虎咽,不同的环境下,我们的吃饭方式是不一样的,这就是所谓的策略。 定义:策略模式定义了一组针对某个行为的不同算法实现,并将这些算法封装起来,这些算法都是可以相互替换的,对于客户来说...
2012-01-28 14:47:22 111
原创 设计模式-0-开篇
设计模式,何为设计模式?说到设计模式,总是让人感到神秘,深奥。其实,设计模式很简单,为什么简单,因为它的特点使其必然是简单的,那么设计模式有哪些特点呢?1、既然是模式,那就是人们在长期的工作生活中总结出来的一套东西,这套东西对于解决某种问题具有普遍性。2、模式具有普遍性还不够,只有好的模式才会被人们认可和接受,什么叫好,效率,性能,可扩展性等等等等,当然,最基本的就是简单易学。好了,可...
2012-01-28 14:23:35 102
原创 2-3、avl树
avl树,又叫平衡二叉搜索树,是在二叉搜索树的基础上建立的一种树,它相比bst,多了一个特性,就是任意一棵子树根节点的左右子树的高度差的绝对值不超过1,这是为了防止bst中最坏情况的出现,一棵avl树的深度为o(logN)。 对于节点的插入,有可能会导致树平衡条件被打破,因此,在插入时,需要对树进行结构调整,以重新满足平衡条件。 我们假设某棵子树的根节点为r,导...
2011-12-13 15:05:42 203
原创 2-2、树的遍历
[code="java"]package 树的遍历;import 二叉查找树.BinarySearchTree;import 二叉查找树.BinarySearchTree.BinaryNode;/** * 展示前序,中序,后序遍历二叉树 * * @author 梅东 * */public class TreeTraversal { Binar...
2011-12-08 09:40:50 160
原创 2-1、二叉查找树
废话少说,直接上代码[code="java"]package 二叉查找树;/** * 二叉搜索树的实现,因为涉及到节点比较,所以节点元素需要实现Comparable接口,查找二叉树的特点是如果一个节点拥有左孩子和右孩子,那么左孩子一定小于它 * ,右孩子一定大于它,在这里,我们简单起见,不考虑节点元素相等的情况。 * * @author 梅东 * * @...
2011-12-07 15:48:04 81
原创 1-4、栈
栈是一种常用的数据结构,它的逻辑特性是后进先出,也称先进后出,栈有两种实现方式,一种是基于数组的,还有一种就是基于链表,基于数组的实现是最高效,也最常用的实现,jdk中就是基于数组实现的。我们可以形象的用下图表示栈的逻辑结构[align=center][img]http://dl.iteye.com/upload/attachment/600637/2a7cc528-0f23-37ba-ab9...
2011-12-06 08:38:54 135
原创 1-3、LinkedList的实现
废话少说,先上代码[code="java"]import java.util.ConcurrentModificationException;import java.util.Iterator;import java.util.NoSuchElementException;public class MyLinkedList { // List的元素个数 priv...
2011-12-05 13:49:56 82
原创 1-2、ArrayList的模拟实现
ArrayList是一种顺序表,是基于数组实现的,很明显,它的性能和特性和数组是类似的。[code="java"]import java.util.Arrays;public class MyArrayList { // 初始容量 private static final int DEFAULT_CAPACITY = 10; // list大小 privat...
2011-12-03 10:58:39 142
原创 1-1、表基本概念
表属于线性结构,是最常见的一种数据结构,表有两种,一种是顺序表,还有一种是链表下面就这两种表结构进行详细介绍顺序表顺序表就是数组,是内存中的一块连续区域。对于数组的常见操作是插入,删除,查找查找:对于数组的查找是非常迅速的,因为可以直接通过数组下标查找。所以,数组查找的时间复杂度是O(1)。插入:插入的操作所花费的时间是比较昂贵的,为什么这么说呢?因为在插入一个数据元素...
2011-12-02 10:16:49 128
原创 数据结构简介
毕业三年了,三年来,一直想系统的整理一下平时工作中学习到知识,但又总是没有时间来施行这个计划,年前这三个月,总算腾出了一段时间,能够系统的对所学习的东西来一个梳理,数据结构就是一个很重要的方面,鉴于我从事的是Java相关的工作,我准备采用Java语言来描述数据结构,当然,语言只是表述形式,思想才是核心,我想,只要掌握了数据结构的本质,就可以使用任何语言来表述。那么,什么是数据结构呢?简单地...
2011-12-01 15:02:00 97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人