推荐一个算法在线演示网站: https://www.cs.usfca.edu/~galles/visualization/Algorithms.html eg:红黑树、 AVL树等算法都可以直接在这个网站中演示 ...
分类:
编程语言 时间:
2019-08-25 18:28:23
阅读次数:
428
HashMap源码阅读: 1,概述 2,HashMap核心成员变量 3,HashMap构造函数 4,HashMap核心方法 1,概述 搞java的人,都应该知道hashMap的底层数据结构是一个数组+链表(+红黑树)。 大体思路:首先是基于key做hash操作,然后与数组长度取模,定位到某个数组位置 ...
分类:
其他好文 时间:
2019-08-23 22:33:02
阅读次数:
98
关键字:修复双黑、插入修复、变色、旋转、nill、红黑 前言: 新添加的节点默认是红色的。 nil节点默认是黑色的。 自平衡方式--旋转 1、定义:节点是黑色或者红色,且满足以下五条性质的自平衡二叉树 性质: (1)性质1:节点是红色或黑色 (2)性质2:根节点是黑色的; (3)性质3:叶子节点是黑 ...
分类:
其他好文 时间:
2019-08-23 22:06:56
阅读次数:
104
看官,不要生气,我没有骂你也没有鄙视你的意思,今天就是想单纯的给大伙分享一下树的相关知识,但是我还是想说作为一名程序员,自己心里有没有点树?你会没点数吗?言归正传,树是我们常用的数据结构之一,树的种类很多有二叉树、二叉查找树、平衡二叉树、红黑树、B树、B+树等等,我们今天就来聊聊二叉树相关的树。 什 ...
分类:
其他好文 时间:
2019-08-23 00:11:15
阅读次数:
67
跳表的原理 跳表也叫跳跃表,是一种动态的数据结构。如果我们需要在有序链表中进行查找某个值,需要遍历整个链表,二分查找对链表不支持,二分查找的底层要求为数组,遍历整个链表的时间复杂度为O(n)。我们可以把链表改造成B树、红黑树、AVL树等数据结构来提升查询效率,但是B树、红黑树、AVL树这些数据结构实 ...
分类:
其他好文 时间:
2019-08-22 23:40:47
阅读次数:
117
TreeMap继承了AbstractMap,实现了NavigableMap(有序并支持搜索Map), Cloneable, java.io.Serializable TreeMap基于红黑树 红黑树是一种平衡的二叉查找树,特点如下 节点是红色或者黑色 根节点是黑色 每个叶子的节点都是黑色的空节点 每 ...
分类:
编程语言 时间:
2019-08-19 18:50:15
阅读次数:
86
1. HashMap的内部实现原理是什么? HashMap内部实现原理是数组+链表,通过散列算法将key值散列到数组中,如果到相同的位置,则通过拉链法解决散列冲突。在JDK8中新增了红黑树结构,当HashMap中的散列冲突链表结构超过8个数据时,会从链表结构转换为红黑树结构。 2. HashMap的 ...
分类:
编程语言 时间:
2019-08-19 12:50:27
阅读次数:
80
1. HashMap的内部实现原理是什么? HashMap内部实现原理是数组+链表,通过散列算法将key值散列到数组中,如果到相同的位置,则通过拉链法解决散列冲突。在JDK8中新增了红黑树结构,当HashMap中的散列冲突链表结构超过8个数据时,会从链表结构转换为红黑树结构。 2. HashMap的 ...
分类:
其他好文 时间:
2019-08-19 00:20:23
阅读次数:
105
题目链接:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/3374.html 题目大意 略。 分析 要手写 AVL 树,而红黑树,SB 树,跳表不可以。 代码如下 1 #include <bits/ ...
分类:
其他好文 时间:
2019-08-10 11:48:10
阅读次数:
91
ConcurrentHashMap数据结构 ConcurrentHashMap相比HashMap而言,是多线程安全的,其底层数据与HashMap的数据结构相同,数据结构如下: 说明:ConcurrentHashMap的数据结构(数组+链表+红黑树),桶中的结构可能是链表,也可能是红黑树,红黑树是为了 ...
分类:
其他好文 时间:
2019-08-10 10:05:46
阅读次数:
81