1. 红黑树原理详解https://blog.csdn.net/liushengxi_root/article/details/860739712.漫画:5分钟搞清楚红黑树到底是什么?https://www.jianshu.com/p/8bcd74de84e73.红黑树详解https://www.c ...
分类:
其他好文 时间:
2020-02-21 11:22:42
阅读次数:
62
前言: 常见的关于HahsMap与ConcurrentHashMap的问题: 数据结构、线程安全、扩容、jdk1.7 HashMap死循环、jdk1.8 HashMap红黑树、容量必须是2的冥次 HashMap 数据结构:数组,单向链表 线程安全:不安全,HashTable线程安全,但是全用了 sy ...
分类:
其他好文 时间:
2020-02-20 22:21:51
阅读次数:
88
原博地址:https://blog.csdn.net/xingfei_work/article/details/79637878 HashMap在jdk1.8之后引入了红黑树的概念,表示若桶中链表元素超过8时,会自动转化成红黑树;若桶中元素小于等于6时,树结构还原成链表形式。 原因: 红黑树的平均查 ...
分类:
其他好文 时间:
2020-02-20 20:19:28
阅读次数:
76
通过源码可以看出 使用 CAS + synchronized 方式时 加锁的对象是每个链条的头结点,也就是 锁定 的是冲突的链表,所以再次提高了并发度,并发度等于链表的条数或者说 桶的数量。那为什么sement 不把段的大小设置为一个桶的,因为在高并发的情况下如果 ReentrantLock 发生冲 ...
分类:
其他好文 时间:
2020-02-20 13:27:46
阅读次数:
108
Tree 星星为什么这么渺小?那是因为他们把自己放的太高了! 背景:简单了解二叉树、平衡树、红黑树、B树和B+树之间的特点和差异。 1. 二叉排序树的特点 a、树的左边节点比根节点小,右边节点比根节点大; b、左右子树也都是二叉排序树; c、但是,在一些特殊情况下,比如插入数据是有序的,就会发生退化 ...
分类:
其他好文 时间:
2020-02-17 12:09:48
阅读次数:
53
null | Vector | List | | | Search | 较快 | 较慢 Insert | 较慢 | 较快 如上表,顺序表结构和链表结构都不有不足,其算法效率在有些时候低也是结构本身所带来的问题。而树这种半线性结构在实现得当的情况下是可以 我们知道任何树都可以转换成二叉树,对树的研究可 ...
分类:
其他好文 时间:
2020-02-16 19:04:47
阅读次数:
81
HashMap底层 1.8前数组+链表 1.8后数组+链表/红黑树 当添加一个元素(key value)时,就首先计算元素key的hash值,以此确定插入数组中的位置,但是可能存在同一hash值的元素已经被放在数组同一位置了,这时就添加到同一hash值的元素的后面,他们在数组的同一位置,但是形成了链 ...
分类:
其他好文 时间:
2020-02-15 09:15:29
阅读次数:
81
jdk 集合大家族之Map 前言: 之前章节复习了Collection接口相关,此次我们来一起回顾一下Map相关 。本文基于jdk1.8。 1. HashMap 1.1 概述 + HashMap相对于List的数据结构而言,它是键值对的集合。主要通过提供key值来取相对应的value的值。而不是通过 ...
分类:
其他好文 时间:
2020-02-13 19:07:48
阅读次数:
62
判断一棵树是否是红黑树,按题给条件建树,dfs判断即可~ #include<bits/stdc++.h> using namespace std; const int maxn=1010; struct node { int data; node * left=NULL; node * right= ...
分类:
其他好文 时间:
2020-02-13 00:16:37
阅读次数:
37
数据结构: 数据存储的常用结构有:栈、队列、数组、链表和红黑树。 栈: 栈:stack, 又称堆栈。 先进后出。 栈的入口、出口的都是栈的顶端位置。 压栈:就是存元素。即,把元素存储到栈的顶端位置,栈中已有元素依次向栈底方向移动一个位置。 弹栈:就是取元素。即,把栈的顶端位置元素取出,栈中已有元素依 ...
分类:
其他好文 时间:
2020-02-12 16:38:26
阅读次数:
61