![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java数据结构
稻草人……
这个作者很懒,什么都没留下…
展开
-
数据结构与算法-----13.Mysql数据库索引是如何实现的:
1.我们在软件开发过程中,为了提高数据库的查询效率,通常的做法是给数据库表中的某一个字段构建索引。有时候需要思考一下:数据库的索引是如何构建的呢?它的底层使用了什么数据结构? 2.我们首先确定一下数据库索引的需求:(1)根据某个值查找数据:select * from user where uid = 1234; (2) 根据某个区间查找数据集合:select * from user where...原创 2019-12-23 14:40:17 · 190 阅读 · 0 评论 -
数据结构与算法-----9.散列表:
1.概念:散列表,又称为哈希表。 2.散列思想:散列表使用的是数组支持利用下标随机访问数据的特性,散列表是数组的一种扩展,由数组演化而来,可以说:没有 数组就没有散列表。 3.为什么需要使用散列表这种数据结构: 因为当我们存储结构简单的数据时,可以存入数组中,然后通过下标索引来快速查找。但是如果存储的是例如:zhansan----10,lisi----20,这种一一映射的对应关系时,就不...原创 2019-12-10 15:08:10 · 180 阅读 · 0 评论 -
数据结构-----4.队列:
1.特点:队列有“先进先出”的特点,使用的场景多数用于资源池这种,例如:线程池中对等待线程的处理,数据库连接池中对线程的管理 2. 队列的生成有两种方式:(1)基于数组生成,称为顺序队列。(2)基于链表生成,称为链式队列。 3.基于数组生成队列的程序: (1)在队列中进行入队操作时,tail指针会不断地向后移动,直到数组已经被装满。进行出队操作时,head指针会不断地从0开始向后移动,这样会...原创 2020-03-17 14:05:57 · 171 阅读 · 0 评论 -
数据结构-----3.栈:
1.特点:遵循 “先进后出”的规则,栈主要包含两个操作,“入栈” 和 “出栈”,栈这种数据结构有两种实现方式:1.数组实现,2.链表实现。例如:浏览器的前进和后退功能就可以使用两个栈来实现,程序中函数的调用也是通过栈来实现。 基于数组实现的叫做“顺序栈”,基于链表实现的叫做“链式栈”。 空间复杂度的概念:除了必须存储数据的空间外,还需要在程序运行时,需要额外的空间。在栈的入栈和出栈过程中,所需...原创 2019-12-30 15:24:30 · 93 阅读 · 0 评论 -
数据结构-----2.链表:
1.概念:链表不需要在内存中有连续的内存空间,他是将零散的内存块通过 “指针” 的形式串联在一起,每个节点中需要保存下一个节点所在的地址。 链表与数组的区别是:数组在内存中需要一块连续的空间来存储数据,如果数组需要100MB的存储空间,虽然内存中剩余的存储空间大于100MB,但是连续的存储空间小于100MB,那么该数组同样也会创建失败。 2.常见的三种链表结构:单向链表,双向链表,循环链表...原创 2019-12-20 09:58:50 · 106 阅读 · 0 评论 -
数据结构-----数组:
1.数组中的概念:是一种线性表数据结构,使用连续的内存空间来存储类型相同的数据。 (1)线性表:数据排列成一种线形结构 ,如(数组,链表,栈,队列)。非线性表:(树,图,堆) 2.数组是如何实现根据下标索引随机访问数据元素的 ? 数组支持随机访问,根据数组下标随机访问的时间复杂度为O(1),而不是说访问数组的时间复杂度为O(1),因为即使为排好序的数组,采用二分查找算法,时间复杂度也是O(l...原创 2019-12-25 09:44:03 · 132 阅读 · 0 评论 -
jdk1.8HashMap源码详解:
一、HashMap概述 在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。 下图中代...转载 2019-03-18 21:20:35 · 963 阅读 · 1 评论 -
HashMap部分源码分析:
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { private static final long serialVersionUID = 362498820763181265L; //容...原创 2019-03-21 14:08:40 · 119 阅读 · 0 评论 -
java数据结构----------二叉搜索树:
package DataStructure; public class SearchBinaryTreeTest { public static void main(String[] args) { int[] arrTree = new int[] {12,56,32,48,77,98,4,55}; SearchBinaryTree tree ...原创 2019-03-12 15:17:02 · 134 阅读 · 0 评论 -
java数据结构------图
public class GraphTest { public static void main(String[] args) { final int MAXVAL = 1000; Graph graph = new Graph(9); /* int[] a0 = new int[] {0,MAXVAL,MAXVAL,MAX...原创 2019-03-12 15:15:18 · 136 阅读 · 0 评论 -
创建二叉树
public class CreateBinaryTreeTest { public static void main(String[] args) { String[] arrTree = new String[] {"A","B","D","#","#","E","#","#","C","F",&原创 2019-03-12 14:55:07 · 122 阅读 · 0 评论 -
二叉树
public class BinaryTreeTest { public static void main(String[] args) { TreeNode root = new TreeNode(1,"A"); TreeNode treeNode_2 = new TreeNode(2,"B"); TreeNode tre...原创 2019-03-12 14:53:47 · 79 阅读 · 0 评论