数据结构
「已注销」
这个作者很懒,什么都没留下…
展开
-
玩转数据结构 (第一章 数组)
首先我们可以通过java中的数组作为基础,来进行一系列的改造,创造我们自己的数组类型,例如增删改查,同时为了让我们的数组可以承载任意类型的元素,我们将使用泛型,也同时实现数组的可伸缩,让其更加灵活public class Array<E> { private E[] data; private int Size; //构造函数,传入数组的容量capacity构造Array...原创 2019-09-06 14:47:32 · 147 阅读 · 0 评论 -
玩转数据结构 (第二章 栈和列队)
栈是一种线性的数据结构,想比数组,就是数组的一个子集,先进后出。栈在的应用有我们常用的撤销操作,等等,用的挺多,现在我们还是利用上一章的数组来实现一个我们自己的栈。首先我们实现一个栈的接口package 数据结构与算法;public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e);...原创 2019-09-06 15:16:21 · 146 阅读 · 0 评论 -
玩转数据结构 第三章(链表)
链表:真正的动态的数据结构,最简单的的动态数据结构,具有递归结构的性质数组个链表的对比:数组最好用于有索引语意的情况最大优点:支持快速查询链表不适合用于索引有语意的情况最大优点:动态数据储存在节点"Node"中class Node{ E e; Node next;}实现链表的数据结构package 数据结构与算法;public class LinkedList<...原创 2019-09-07 12:39:20 · 105 阅读 · 0 评论 -
玩转数据结构 (第六、七章 集合和映射、优先队列和堆)
映射也是一个集合public static void main()原创 2019-10-02 16:53:45 · 207 阅读 · 0 评论 -
玩转数据结构 (第八章 线段树)
线段树(区间树)对于给定区间更新:更新区间中一个元素或者一个区间的值查询:查询一个区间[i,j]的最大值,最小值或者区间数字和线段树是平衡二叉树(对于整棵树来说,最大深度和最小深度相差不超过一)(堆也是平衡二叉树)“如果区间有n个元素,数组表示需要有多少节点?0层:11层:22层:4 3层:8 … h-1层:2^(h-1) ” 对满二叉树:h层...原创 2019-10-02 22:36:56 · 149 阅读 · 0 评论 -
玩转数据结构 (第九章 Tire)
Trie 字典树 前缀树专门处理字符串查询每个条目的时间复杂度和条目总数无关,和所查的字符串长度有关Trie 的局限性 空间!代码:import java.util.TreeMap;public class Trie{ private class Node{ public boolean isWord; public TreeMap<Character , Node&g...原创 2019-10-04 17:37:44 · 189 阅读 · 1 评论 -
第十章 并查集(由子指向父的树结构)
连接问题可以非常快的判断网络中节点的连接状态路径压缩第一版是用数组实现,第二版虽然也是数组,但是思路是将其想成很多树结构代码:public class Main{ private static double testUF(UF uf, int m){ int size = uf.getSize(); Random random = new Random(); long...原创 2019-10-07 19:59:16 · 139 阅读 · 0 评论 -
第十一章 (AVL)
平衡二叉树原创 2019-10-08 21:16:55 · 113 阅读 · 0 评论