介绍 红黑树是一种特殊的平衡二叉树(AVL),可以保证在最坏的情况下,基本动态集合操作的时间复杂度为O(logn)。因此,被广泛应用于企业级的开发中。 红黑树的性质 在一棵红黑树中,其每个结点上增加了一个存储位(属性color)来表示结点的颜色,且颜色只能是red or black。通过对任何一条从 ...
分类:
编程语言 时间:
2019-10-19 10:00:18
阅读次数:
68
最近开始找golang 开发工程师职位,针对算法相关二叉树相关常用面试题搞一遍: package tree import ( "math" "fmt" ) type BinaryTree struct { Value int Left *BinaryTree Right *BinaryTree } ...
分类:
其他好文 时间:
2019-10-07 00:40:41
阅读次数:
123
为了提高查找效率,采用了树这种逻辑结构。 科学家先后发明了二叉查找树、二叉排序树、平衡二叉树(AVLTree)、平衡多路查找树(B-树)、B+树 B+树由这些数据结构演化而来,是目前最高效的查找数据结构。 下面说一下这些树: 二叉查找树: 二叉查找树中序遍历有序!中序遍历是左->中->右。 但是二叉 ...
分类:
其他好文 时间:
2019-10-06 18:22:33
阅读次数:
85
首先说一下,凡是每个节点最多只有两个子节点的树都叫二叉树。 二叉查找树 二叉查找树,也称二叉搜索树,或二叉排序树。其定义也比较简单,要么是一颗空树,要么就是具有如下性质的二叉树: (1)若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2) 若任意节点的右子树不空,则右子树上所 ...
分类:
其他好文 时间:
2019-09-26 21:09:25
阅读次数:
85
学习过了二叉查找树,想必大家有遇到一个问题。例如,将一个数组{1,2,3,4}依次插入树的时候,形成了图1的情况。有建立树与没建立树对于数据的增删查改已经没有了任何帮助,反而增添了维护的成本。而只有建立的树如图2,才能够最大地体现二叉树的优点。 在上述的例子中,图2就是一棵平衡二叉树。科学家们提出平 ...
分类:
其他好文 时间:
2019-09-19 23:24:01
阅读次数:
101
mysql 三种常见数据库索引结构 哈希表 哈希表只是键值数据结构,比较适合等值查找 有序数组 有序数组在等值查询和范围查询场景中的性能都非常优秀 (如二分法查找),缺点更新时成本比较高。比较适合静态存储引擎 索引树 二叉搜索树特点是:每个节点的左儿子小于父节点,右儿子大于父节点,查询时间复杂度是O ...
分类:
数据库 时间:
2019-09-17 17:24:16
阅读次数:
104
地址 https://www.acwing.com/problem/content/66/ https://www.acwing.com/problem/content/67/ https://www.acwing.com/problem/content/submission/68/ 三道题都是二叉 ...
一、基本介绍 1)平衡二叉树也叫平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树, 可以保证查询效率较高。 2)具有以下特点:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 3)平衡二叉树的常用实现方 ...
分类:
其他好文 时间:
2019-09-11 21:30:27
阅读次数:
95
红黑树及其基本操作 红黑树的定义 ? 红黑树是一种自平衡二叉查找树。它相比于平衡二叉树的优点在于,其的特性可以让其在任何条件下保持树的高度小于等于log n,所以其即使在最坏条件下对于增删查改这样的基本操作也能保持O(log n)的时间复杂度;另外,相比于严格平衡的AVL树,红黑树是一种不严格的平衡 ...
分类:
其他好文 时间:
2019-09-11 21:28:51
阅读次数:
102