java数据结构与算法
简单就好喽
这个作者很懒,什么都没留下…
展开
-
ArrayList 的实现分析
1. 实现原理:内部结构是数组。 2. 特点:查找快,改动慢。 3. 下面以增删改查为例,进行分析3.1 增:介绍: 先调用ensureCapacityInternal(size +1 ),确保ArryList 容器的容量可以存下当前的值,不溢出。一下为增加操作的函数代码、size :当前存入的个数。把要存入的数据存到最后一位。public boolean add(E e) { ensure原创 2017-11-11 21:47:47 · 149 阅读 · 0 评论 -
java哈希表
1. 哈希表简介:2. 哈希化图解3. 开发地址法4. 代码实现/** * @author liupenghao 员工信息类 */ public class Info { private String key; private String name; public Info(String key, String name) { this.key = key;原创 2017-11-27 15:24:07 · 273 阅读 · 0 评论 -
红黑树
红黑树原创 2017-11-27 12:12:28 · 125 阅读 · 0 评论 -
排序二叉树
1. 节点public class Node { // 数据项 public long data; // 左子节点 public Node leftChild; // 右子节点 public Node rightChild; public Node(long data) { this.data = data; }}2. 二原创 2017-11-27 11:05:59 · 188 阅读 · 0 评论 -
双向链表
1. 节点/** * 链接点 ,相当于是车厢 */ public class Node { // 数据域 public long data; // 指针域 public Node next; public Node previous; public Node(long value){ this.data = value; }原创 2017-11-27 10:28:48 · 124 阅读 · 0 评论 -
双端链表
1. 节点/** * 链接点 ,相当于是车厢 */ public class Node { // 数据域 public long data; // 指针域 public Node next; public Node previous; public Node(long value){ this.data = value;原创 2017-11-27 10:23:58 · 129 阅读 · 0 评论 -
java链表
1. Node 节点类/** * 链接点 ,相当于是车厢 */ public class Node { // 数据域 public long data; // 指针域 public Node next; public Node(long value){ this.data = value; } /** * 显示方原创 2017-11-27 10:17:25 · 114 阅读 · 0 评论 -
循环队列
public class MyCycleQueue { // 底层使用数组 private long[] arr; // 有效数据的大小 private int elements; // 队头 private int front; // 队尾 private int end; /** * 默认构造方法 */原创 2017-11-27 09:47:48 · 132 阅读 · 0 评论 -
java 栈的分析
1. 系统提供的Stack 的方法如下:2. 集成关系如下:由上图可见,Stack 的底层是数组,因为继承了Vector ,AbstractList.3. Stack的常用方法进栈://Stack 中方法: public E push(E item) { addElement(item); return item; } // vector 中方法 public synchroni原创 2017-11-24 16:51:33 · 211 阅读 · 0 评论 -
快速排序
排序原理: 排序源码: public class QuickSort { /** * 划分数组 */ public static int partition(long arr[],int left, int right,long point) { int leftPtr = left - 1; int rightPtr =原创 2017-11-24 16:02:14 · 138 阅读 · 0 评论 -
数据查找算法总结1
1.二分法查找介绍:前提是当前要查询的数组的有顺序的。根据值得对比,逐步成半的缩小范围。public int binarySearch(long[]arr,long value) { int min = 0; int max = elements; int mid = 0; while (true) { mid = (min + max) / 2;原创 2017-11-11 22:32:45 · 216 阅读 · 0 评论 -
图
1. 图 简介: 深度优先搜索: 遍历上边的图,深度优先搜索原理分析: 需要栈,方便操作 1. 先将A 压入栈中 2. 遍历A(栈顶)的一个未访问过的邻接点,压入栈中 如果A(栈顶)没有一个未访问过的临界点弹出A 3. 遍历B(栈顶)元素的一个邻接点,压入栈中 如果B(栈顶)没有一个未原创 2017-11-27 16:21:28 · 719 阅读 · 0 评论