记录一下某次使用平衡二叉树。 注:二叉树概念 【 1、二叉树、完全二叉树、满二叉树、平衡二叉树区别 二叉树: 除了叶子节点外,每个节点只有两个分支,左子树和右子树,每个节点的最大度数为2 满二叉树:除了叶结点外每一个结点都有左右子叶 且 叶结点都处在最底层的二叉树。 完全二叉树:只有最下面的两层结点 ...
分类:
编程语言 时间:
2019-03-05 11:18:20
阅读次数:
192
1.红黑树的意义 二叉查找树在极端的插入情况下,操作时间复杂度会变为O(n),但是平衡二叉树可以一直维持在O(lg(n))。因此平衡二叉查找树的效率很高,红黑树是一种自平衡二叉查找树的实现方式,这便是红黑树的意义。 2.红黑树性质 [1]节点是红色或黑色。 [2]根节点是黑色。 [3]每个叶节点(N ...
分类:
其他好文 时间:
2019-03-04 14:18:09
阅读次数:
190
在看HashMap源码的时候,涉及到红黑树,这个数据结构早已听闻大名,而且在学校的教材中没有讲这个数据结构,所以花了点时间去学习和理解这个数据结构。(比我想象中的复杂的多……) Red-Black Tree的简介 首先这是个二叉查找树,它属于但又不严格属于平衡二叉树(AVL),因为它没有像平衡二叉树 ...
分类:
其他好文 时间:
2019-02-18 01:25:31
阅读次数:
265
定义: 线段树是一种二叉搜索树。 与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[a,b], 它的左儿子表示的区间为[a,(a+b)/2], 右儿子表示的区间为[(a+b)/2+1,b]。 因此线段树是平衡二叉树,最后的子节点数目 ...
分类:
其他好文 时间:
2019-02-15 17:21:35
阅读次数:
157
二叉查找树ADT 定义:是一个二叉树,其中每一个节点的值大于左子树的所有值而小于右子树的所有值 平衡二叉树:平衡是指一个二叉树的任何节点的深度均不得过深 AVL树 定义:是一个二叉查找树,每个节点的左子树与右子树的高度差最多为1,AVL树的结构变化(添加或者删除元素可以通过旋转调整),从新满足AVL ...
分类:
其他好文 时间:
2019-02-13 10:44:58
阅读次数:
170
splay是如何减少时间复杂度呢?让我先研读一下代码QAQ每次访问某个节点时都把它旋转到根节点. 以下转自https://blog.csdn.net/qq_31640513/article/details/76944892 共有三种情况. 那不如直接上例题?(越来越懒) 区间旋转怎么做啊?? 我会s ...
分类:
其他好文 时间:
2019-02-11 21:37:19
阅读次数:
273
一、题目描述 给定一个二叉树,判断它是否是高度平衡的二叉树 本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1 ...
分类:
其他好文 时间:
2019-02-10 15:07:05
阅读次数:
148
private boolean isBalanced = true; public boolean IsBalanced_Solution(TreeNode root) { height(root); return isBalanced; } public int height(TreeNode r... ...
分类:
其他好文 时间:
2019-02-01 19:44:19
阅读次数:
209
1.满二叉树 2.完全二叉树 3.二叉查找树 4.平衡二叉树 5.平衡查找树之 AVL树 6.平衡二叉树之 红黑树 7.B 树 8.B+ 树 9.B* 树 10.Trie 树 ...
分类:
其他好文 时间:
2019-01-31 13:17:23
阅读次数:
225