在看HashMap源码的时候,涉及到红黑树,这个数据结构早已听闻大名,而且在学校的教材中没有讲这个数据结构,所以花了点时间去学习和理解这个数据结构。(比我想象中的复杂的多……) Red-Black Tree的简介 首先这是个二叉查找树,它属于但又不严格属于平衡二叉树(AVL),因为它没有像平衡二叉树 ...
分类:
其他好文 时间:
2019-02-18 01:25:31
阅读次数:
265
1.AVL树介绍 前面我们已经介绍了二叉搜索树。普通的二叉搜索树在插入、删除数据时可能使得全树的数据分布不平衡,退化,导致二叉搜索树最关键的查询效率急剧降低。这也引出了平衡二叉搜索树的概念,平衡二叉搜索树在此前的基础上,通过一系列的等价变换使二叉搜索树得以始终处于"平衡"的状态,拥有稳定且高效的查询 ...
分类:
编程语言 时间:
2019-02-13 21:15:23
阅读次数:
272
二叉查找树ADT 定义:是一个二叉树,其中每一个节点的值大于左子树的所有值而小于右子树的所有值 平衡二叉树:平衡是指一个二叉树的任何节点的深度均不得过深 AVL树 定义:是一个二叉查找树,每个节点的左子树与右子树的高度差最多为1,AVL树的结构变化(添加或者删除元素可以通过旋转调整),从新满足AVL ...
分类:
其他好文 时间:
2019-02-13 10:44:58
阅读次数:
170
https://pintia.cn/problem-sets/994805342720868352/problems/994805404939173888 An AVL tree is a self-balancing binary search tree. In an AVL tree, the ...
分类:
其他好文 时间:
2019-02-11 12:48:30
阅读次数:
134
正解:构造 解题报告: 传送门! 这题首先可以画下图找下规律,,,然后通过找规律可以发现,最终的方案一定是一条主干+一些枝条,而且这些枝条的分杈一定小于等于2 明确一下主干的定义,最左边的节点和最右边的节点之间的路径为主干 如图 强行证明一下吼,,, 因为是两排平行的“钉子板” 所以如果一个分枝点想 ...
1.满二叉树 2.完全二叉树 3.二叉查找树 4.平衡二叉树 5.平衡查找树之 AVL树 6.平衡二叉树之 红黑树 7.B 树 8.B+ 树 9.B* 树 10.Trie 树 ...
分类:
其他好文 时间:
2019-01-31 13:17:23
阅读次数:
225
文章是对邓俊辉老师数据结构教程的总结,部分图片资料来自邓俊辉老师的教学PPT 建议阅读前先阅读参考文章的第二,三文章,总结得非常好! 文章部分代码和图片来自参考文章的第二,三文章!! 阅读前提几个问题吧 ,帮助思考 为什么需要平衡二叉树 AVL 需要两次旋转的操作为什么不直接分解为左旋和右旋,还要L... ...
分类:
其他好文 时间:
2019-01-29 23:13:04
阅读次数:
345
内容: 1、平衡二叉树 2、典型搜索二叉树原理(AVL树、红黑树、SB树) 3、旋转 -- Rebalance 4、Java中红黑树的使用 1、平衡二叉树 2、典型搜索二叉树原理(AVL树、红黑树、SB树) 3、旋转 -- Rebalance 4、Java中红黑树的使用 ...
分类:
其他好文 时间:
2019-01-29 23:05:42
阅读次数:
150
AVL树:平衡的二叉搜索树,其子树也是AVL树。 以下是我实现AVL树的源码(使用了泛型): ...
分类:
编程语言 时间:
2019-01-27 14:31:00
阅读次数:
184
调整过程基本都在子树内完成,指针不需要一直向上回溯,相比 AVL 树,AVL 树在删除节点时,指针有可能会一直回溯到根为止
分类:
编程语言 时间:
2019-01-24 15:06:29
阅读次数:
126