![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
数据结构
OAH`Zero
这个作者很懒,什么都没留下…
展开
-
数据结构之HashMap
package newdata.datastruct.binarytree;import java.util.ArrayDeque;import java.util.Objects;import java.util.Queue;public class HtqHashMap<K,V> { private static class Entry<K,V>{ int hash; boolean color; K key;原创 2020-07-15 23:46:09 · 159 阅读 · 0 评论 -
数据结构之TreeMap
package datastruct.binarytree;import java.util.Comparator;public class HtqTreeMap<K,V> { private static class Node<K,V>{ boolean color; K key; V value; Node<K,V> parent; Node<K,V> left原创 2020-07-14 23:57:40 · 219 阅读 · 0 评论 -
数据结构之二叉平衡搜索树(RBT)
package datastruct.binarytree;import java.util.Comparator;import java.util.Objects;public class RBTree<E> { private static class Node<E>{ boolean color; E item; Node<E> parent; Node<E> left;原创 2020-07-14 18:06:05 · 154 阅读 · 0 评论 -
数据结构之二叉平衡搜索树(AVL)
package datastruct.binarytree;import java.util.Comparator;import java.util.Objects;public class AVLTree<E> { private static class Node<E>{ E item; Node<E> parent; Node<E> left; Node<E>原创 2020-07-14 18:05:10 · 127 阅读 · 0 评论 -
数据结构之二叉搜索树
package datastruct.binarytree;import java.util.ArrayDeque;import java.util.Comparator;import java.util.Queue;import java.util.Stack;public class BinarySearchTree<E> { private static class Node<E>{ E item; Node<E>原创 2020-07-14 00:21:18 · 121 阅读 · 0 评论 -
数据结构之双端循环队列(ArrayDeque)
动态循环数组为了提高效率,ArrayDeque采用了循环数组的设计,也就是说虽然基础容器是一个普通的数组(默认容量16),但是在逻辑上,这个数组没有固定的开头或结尾,既可以直接向尾部添加数据,也可以直接向头部之前添加数据,不需要大面积地移动数据。所以ArrayDeque与之前写的ArrayList优化(CircleArrayList)类似CircleArrayList支持指定索引添加删除元素CircleArrayList对数组容量没有要求ArrayDeque的数组容量必须是2^n 每次扩容2倍原创 2020-07-13 17:52:48 · 328 阅读 · 0 评论 -
数据结构之栈原理(Vector)
栈接口public E push(E item);public synchronized E pop();public synchronized E peek();public boolean empty();public synchronized int search(Object o);底层实现是Vectorpublic class Stack extends Vector {…}采用是继承的方式,也就是说Stack也可以使用Vector其他方法。Vector分析构造方法创原创 2020-07-13 15:06:29 · 617 阅读 · 0 评论 -
数据结构之两个栈实现队列
package datastruct.linearlist;import java.util.Stack;public class HtqTwoStackQueue<E> { private Stack<E> enStack = new Stack<>(); private Stack<E> deStack = new Stack<>(); public int size(){ return en原创 2020-07-13 01:04:18 · 106 阅读 · 0 评论 -
数据结构之两个队列实现栈
package datastruct.linearlist;import java.util.ArrayDeque;import java.util.Queue;public class HtqTwoQueueStack<E> { private Queue<E> queue1 = new ArrayDeque<>(); private Queue<E> queue2 = new ArrayDeque<>();原创 2020-07-13 01:02:49 · 106 阅读 · 0 评论 -
数据结构之双向循环链表
package datastruct.linearlist;import java.lang.reflect.Array;import java.util.Objects;/** * 不用单向循环链表 * 不仅要在最后维护first和last * 还要注意linkBefore和unLink中的非空判断 */public class HtqCircleLinkedList<E> { private static class Node<E>{原创 2020-07-13 00:59:19 · 193 阅读 · 0 评论 -
数据结构之双向链表
package newdata.datastruct.linearlist;import java.lang.reflect.Array;import java.util.Objects;public class HtqLinkedList<E> { private static class Node<E>{ E item; Node<E> pre; Node<E> next;原创 2020-07-13 00:43:11 · 104 阅读 · 0 评论 -
数据结构之单向循环链表
package datastruct.linearlist;import java.lang.reflect.Array;import java.util.Objects;/** * 添加删除后维护尾头节点 * 不能用while null作为判断条件 */public class HtqSinglyCircleLinkedList<E> { private static class Node<E>{ E item; Node原创 2020-07-13 00:29:17 · 278 阅读 · 0 评论 -
动态循环数组(ArrayList优化)
测试结果分析动态数组有一个最大的弊端就是浪费内存空间,这个无法避免。还有一个弊端就是添加删除都需要移动数组元素,最坏情况下要从头移动到尾,也就是n次,致使时间复杂度为O(n) 。下面这个例子就解决了这个问题,通过判断索引位置,移动元素少的一端,可以至少节约一半的时间。这个对外使用是无感的,只是内部逻辑实现不同而已。初始化10,添加8个元素:CircleArrayList{size=8, head=0, elementData=[1, 2, 3, 4, 5, 6, 7, 8]}NewRealAr原创 2020-07-10 16:05:06 · 353 阅读 · 2 评论 -
数据结构之动态数组(ArrayList)
数据结构概述数据结构是计算机存储、组织数据的方式线性结构线性表数组链表栈队列树形结构二叉树AVL树红黑树B树堆Trie哈夫曼树并茶集图形结构邻接矩阵邻接表数组具有 n 个相同类型元素的有限序列( n ≥ 0 )一维数组数组定义默认初始化 / 动态初始化int[] arr = new int[1016];int arr[] = new int[1016];arr[0] = 1;arr[1] = 0;arr[2] = 1;arr[3] =原创 2020-06-29 16:27:23 · 454 阅读 · 0 评论 -
数据结构之单向链表
单向链表的定义public class Node{ int value; Node next; public Node(int value) { this.value = value; }}单向链表遍历public void list(Node head) { while (head!=null){ System.out.print(head.value+" "); head = head.next; } Sy原创 2020-06-20 17:26:13 · 159 阅读 · 0 评论