随笔分类 -  数据结构

摘要:一、简介 上篇文章详细介绍了HashMap的源码及原理,本文趁热打铁继续分析ConcurrentHashMap的原理。 首先在看本文之前,希望对HashMap有一个详细的了解。不然看直接看ConcurrentHashMap的源码还是有些费劲的。 相信对HashMap,HashTable有一定了解,应 阅读全文
posted @ 2020-01-14 16:14 超级小小黑 阅读(3717) 评论(8) 推荐(7) 编辑
摘要:一、简介 HashMap源码看过无数遍了,但是总是忘,好记性不如烂笔头。 本文HashMap源码基于JDK8。 文章将全面介绍HashMap的源码及HashMap存在的诸多问题。 开局一张图,先来看看hashmap的结构。 二、历史版本 再次声明一下本文HashMap源码基于JDK8。不同版本Has 阅读全文
posted @ 2020-01-13 09:40 超级小小黑 阅读(2251) 评论(2) 推荐(4) 编辑
摘要:一、简介 前文介绍了《最大堆》的实现,本章节在最大堆的基础上实现一个简单的优先队列。优先队列的实现本身没什么难度,所以本文我们从优先队列的场景出发介绍topK问题。 后面会持续更新数据结构相关的博文。 数据结构专栏:https://www.cnblogs.com/hello-shf/category 阅读全文
posted @ 2019-09-05 12:00 超级小小黑 阅读(1914) 评论(2) 推荐(0) 编辑
摘要:一、前言 本文将详细为大家讲解关于堆这种数据结构。学了本章以后我们会发现,呃呵,原来...名字听起来高大上的数据结构也就那么回事。 后面会持续更新数据结构相关的博文。 数据结构专栏:https://www.cnblogs.com/hello-shf/category/1519192.html git 阅读全文
posted @ 2019-08-30 09:20 超级小小黑 阅读(12390) 评论(5) 推荐(9) 编辑
摘要:一、简介 前面的文章我们循序渐进的讲解了《二叉树》《二分搜索树》《AVL-平衡二叉树》,从左至右互为基础。尤其是二分搜索树给了我们如何将数据组织成为搜索树的思想,当然二分搜索树存在的天然问题--在极端情况下回退化为链表。所以引出了AVL-平衡二叉树,通过再平衡即LL,LR,RR,RL四个旋转操作维护 阅读全文
posted @ 2019-08-29 22:15 超级小小黑 阅读(4779) 评论(4) 推荐(3) 编辑
摘要:一、简介 本文将通过图解和代码详细讲解AVL平衡二叉树的性质及失衡和再平衡的内容。在看本文之前希望大家具备二分搜索树的相关知识。或移步《二分搜索树》了解二分搜索树。 二、平衡二叉树 前面关于二分搜索树的文章,最后分析了在极端情况下,二分搜索树会退化为一个链表,那为了避免这种情况的发生,AVL平衡二叉 阅读全文
posted @ 2019-08-29 09:26 超级小小黑 阅读(4619) 评论(1) 推荐(9) 编辑
摘要:一、文章简介 本文将从二叉搜索树的定义和性质入手,带领大家实现一个二分搜索树,通过代码实现让大家深度认识二分搜索树。 后面会持续更新数据结构相关的博文。 数据结构专栏:https://www.cnblogs.com/hello-shf/category/1519192.html git传送门:htt 阅读全文
posted @ 2019-08-23 16:20 超级小小黑 阅读(6038) 评论(4) 推荐(2) 编辑
摘要:一、简介 本文从链表的简介开始,介绍了链表的存储结构,并根据其存储结构分析了其存储结构所带来的优缺点,进一步我们通过代码实现了一个输入我们的单向链表。然后通过对递归过程和内存分配的详细讲解让大家对链表的引用和链表反转有一个深入的了解。单向链表实现了两个版本,分别使用循环和递归实现了两个版本的链表,相 阅读全文
posted @ 2019-08-23 09:31 超级小小黑 阅读(10366) 评论(2) 推荐(7) 编辑
摘要:一、简介 本文开始梳理数据结构的内容,从数组开始,逐层深入。 二、java中的数组 在java中,数组是一种效率最高的存储和随机访问对象引用序列的方式。数组是一种线性序列,这使得元素访问非常快速。但是为了这种快速所付出的代价是数组对象的大小被固定,并且是在其整个生命周期中不可被改变,简单的来说可以理 阅读全文
posted @ 2019-08-05 11:22 超级小小黑 阅读(1096) 评论(1) 推荐(0) 编辑