Data Structures in java
带剑书生_
人生不止眼前的crud....
展开
-
LinkedList源码系列(1)
//:judy/List首先我们知道LinkedList的ADT(抽象数据类型)其实是链表,而链表的优缺点想必大家都知道。。 在此不用赘述今天我们主要讲的是LinkedLIst 类和 Node类 以及ListIterator类用泛型的设计,以及核心常用的源码:先来看下Collection接口,List接口,ListIterator接口的主要接口public interfa原创 2015-12-03 21:40:39 · 624 阅读 · 0 评论 -
LinkedList源码系列(2)
int indexOF(T e): /** * Returns the index of the first occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, return原创 2015-12-05 12:18:22 · 604 阅读 · 0 评论 -
二叉搜索树
二叉搜索树,对于任何结点x,它的左子树结点关键字不大于x.key,右子树结点关键字不小于x.key。二叉树删除结点的4种情况 (a)当删除的结点只有右孩子的时候:if (deleteNode.left == null) this.transplant(deleteNode, deleteNode.right);(b)当删除的结点只有左孩子的时候:else原创 2016-12-10 13:29:49 · 414 阅读 · 0 评论 -
队列
队列的顺序表方式实现:实现之前的问题?/* * 沿用顺序表的实现方法的问题: * 1、rear=0时,因为队头元素就在数组高端,deQueue()的时间代价O(1),而enQueue()的代价O(n) * 2、rear=n-1时,因为队头元素又在数组低端,需要移动其余n-1个元素,deQueue()的时间代价O(n),而enQueue()的代价O(1) * 如何保证队列的连原创 2016-12-04 14:34:06 · 276 阅读 · 0 评论 -
栈
栈的实现:/** * 顺序表实现的栈 * @author Administrator * * @param */public class MyArrStack { private int size; // 栈中存放放最多元素个数 private int top; // 栈顶位置 private T[] items; // 基础数组 @SuppressWarnings("原创 2016-12-05 12:43:06 · 220 阅读 · 0 评论 -
HasMap简单实现
采用链接法处理碰撞/** * MapEntry存储KEY-VALUE键值对,当发生碰撞时,可以还可以根据不同的key来查找value。 * * @author Administrator * * @param * @param */class MapEntry { private K key; //键 private V value; //值 public M原创 2016-12-09 15:37:45 · 753 阅读 · 2 评论 -
HashMap分析
HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。一、定义 HashMap实现了Map接口,继承Abs转载 2017-03-08 20:23:41 · 241 阅读 · 0 评论 -
利用堆解决开发中的一个问题
最近开发中看见这样的一个需求,给车系建议指导价,也就是取最小值和最大值。竟然有人写了一个冒泡排序..... 我们都知道Java类库中提供的排序都是经过优化的排序算法,顺序表也就是用的是快排,而且这个快排是三相求和取平均值算法,让拿到的值也就是轴,尽可能均匀的划分,也就是轴的左边和右边尽可能的数量平均,达到快排的最好效果。而对于链表官方库也是采用的归并排序。于链表呢,比如快排,两个指针分别网后往...原创 2018-02-27 11:44:41 · 250 阅读 · 0 评论