今天我们要说的红黑树就是就是一棵非严格均衡的二叉树,均衡二叉树又是在二叉搜索树的基础上增加了自动维持平衡的性质,插入、搜索、删除的效率都比较高。红黑树也是实现 TreeMap 存储结构的基石。 1.二叉搜索树 二叉搜索树又叫二叉查找树、二叉排序树,我们先看一下典型的二叉搜索树,这样的二叉树有何规则特 ...
分类:
其他好文 时间:
2019-11-01 20:37:24
阅读次数:
93
二叉树:树的每个节点最多只能有两个子节点 上图的第一幅图B节点有DEF三个子节点,就不是二叉树,称为多路树;而第二幅图每个节点最多只有两个节点,是二叉树,并且二叉树的子节点称为“左子节点”和“右子节点”。上图的D,E分别是B的左子节点和右子节点。 如果我们给二叉树加一个额外的条件,就可以得到一种被称 ...
分类:
其他好文 时间:
2019-11-01 12:50:30
阅读次数:
79
算法思想 首先将待查关键字key与根结点关键字t进行比较,如果: 1)key=t,则返回根结点地址; 2)keyt,则进一步查找右子树; 对应的递归算法如下: 对应的非递归算法如下: ...
分类:
编程语言 时间:
2019-10-31 23:39:09
阅读次数:
139
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 解题思路 采用中序遍历遍历二叉树,利用二叉排序树的特性,顺次连接节点,形成双向链表。 C++代码实现 /* struct TreeNode { int val; struct ...
分类:
其他好文 时间:
2019-10-23 11:47:14
阅读次数:
83
数据结构: 树状数组 线段树 单调队列&单调栈 普通平衡树&文艺平衡树 链表 字符串 KMP Hash Manacher Trie 基础算法: 二分 贪心 搜索 倍增 分块 模拟(退火) 图论: 基础知识 最小生成树 最短路 拓扑排序 树链剖分 LCA 并查集 强连通分量 割点&桥 网络流 数学: ...
分类:
其他好文 时间:
2019-10-21 20:55:28
阅读次数:
113
一、定义与概念 1、二叉查找树又称为二叉排序树,它是一种特殊二叉树。 二叉查找树的定义为一颗空树,或满足如下性质的树: ①左子树非空,则左子树所有结点的值均小于根结点的值。 ②右子树非空,则右子树所有结点的值均大于(或大于等于)根结点的值。 ③左右子树也递归的定义为二叉查找树 二、二叉查找树的操作 ...
分类:
编程语言 时间:
2019-10-11 12:09:52
阅读次数:
110
二叉查找树的实现 1. 原理 二叉查找树,又称为二叉排序树、二叉搜索树。对于树中每一个节点X,它的左子树中所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项。二叉查找树的平均深度为O(log N),搜索元素的时间复杂度也是O(log N)。是两种库集合类TreeSet、TreeMap实现的 ...
分类:
编程语言 时间:
2019-10-08 22:19:00
阅读次数:
119
为了提高查找效率,采用了树这种逻辑结构。 科学家先后发明了二叉查找树、二叉排序树、平衡二叉树(AVLTree)、平衡多路查找树(B-树)、B+树 B+树由这些数据结构演化而来,是目前最高效的查找数据结构。 下面说一下这些树: 二叉查找树: 二叉查找树中序遍历有序!中序遍历是左->中->右。 但是二叉 ...
分类:
其他好文 时间:
2019-10-06 18:22:33
阅读次数:
85
高强度训练第十八天总结: 二叉查找树: 二叉查找树就是左结点小于根节点,右结点大于根节点的一种排序树,也叫二叉搜索树。也叫BST,英文Binary Sort Tree。 就长下面这吊样 查找步骤 在二叉搜索树b中查找x的过程为: 若b是空树,则搜索失败,否则: 若x等于b的根节点的数据域之值,则查找 ...
分类:
其他好文 时间:
2019-10-02 22:53:28
阅读次数:
129
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 百度百 ...
分类:
其他好文 时间:
2019-09-26 23:06:17
阅读次数:
130