题目:输入一棵二叉搜索树,将该二叉搜素树转换成一个排序的双向链表。二叉树节点定义如下:structTreeNode{intval;structTreeNode*left;structTreeNode*right;TreeNode(intx):val(x),left(NULL),right(NULL){}};解题思路:由于通过中序排序可以转化为双向链表,因此,通过中序遍历的方法(左根右)的递归方法可
分类:
编程语言 时间:
2020-02-07 10:52:36
阅读次数:
79
一颗红黑树是满足下面红黑性质的二叉搜索树 ①每个结点或是红的,或是黑的。 ②根结点是黑的 ③每个叶结点(NIL)是黑的 ④如果一个结点是红色的,则它的两个子结点是黑色的。 ⑤对每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点。 插入时总是要考虑它的叔叔,删除时总要考虑它的兄 ...
分类:
其他好文 时间:
2020-02-06 23:23:32
阅读次数:
80
之前我们实现了简单的二叉搜索树,现在介绍一下,STL中的容器,应对需要使用二叉搜索树的情况其实,大多数时候,用STL中的set就够了,不需要自己实现 1 #include <iostream> 2 #include <cstdio> 3 #include <set> 4 5 using namesp ...
分类:
其他好文 时间:
2020-02-06 16:53:21
阅读次数:
73
伸展树 Splay 维基百科上称为伸展树,但是国内好像一般叫平衡树,是众多平衡树中比较优秀的一种。 平衡树左旋右旋不会影响中序遍历顺序。 一棵平衡树的中序遍历顺序是值递增排序的,相当于从小到大到大排了一次序。 平衡树的作用: 平衡树其实就是一棵二叉搜索树,set和map都是平衡树实现。 一棵二叉搜索 ...
分类:
其他好文 时间:
2020-02-06 14:19:56
阅读次数:
56
剑指OFFER 二叉搜索树的后序遍历 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 分析 判断是否是二叉搜索树的后序遍历结果,那么得先明白什么是二叉搜索树,还有什么是后序遍历 这是一颗二叉搜索树, ...
分类:
其他好文 时间:
2020-02-05 23:06:32
阅读次数:
56
天梯赛练习 L3-010 是否完全二叉搜索树 (30分) 数组建树模拟 ...
分类:
编程语言 时间:
2020-02-05 17:56:57
阅读次数:
72
RRT快速搜索随机树英文全称Rapid-exploration Random Tree,和PRM类似,也是一种路径规划算法。 和PRM类似,算法也需要随机撒点,不过不同的是,该算法不是全局随机撒点,而是一次撒一个点,然后判断当前搜索树与随机点距离,然后找到搜索树距离随机点最近的节点,向该随机点方向扩 ...
分类:
其他好文 时间:
2020-02-02 17:28:29
阅读次数:
249
Tarjan算法与无向图的连通性 [TOC] 1:基础概念 在说Tarjan算法求解无向图的连通性之前,先来说几个概念: ①:是$subtree(x)$的结点; ②:通过一条不在搜索树上的边,能够到达$subtree(x)$的结点 在了解概念之后,我们可以根据定义来计算$low[x]$: 令$low ...
分类:
编程语言 时间:
2020-02-02 16:08:25
阅读次数:
137
二叉查找树(二叉搜索树、二叉排序树)的创建、增、删、查、改。 main.cpp: #include <iostream> #include "BinarySearchTree.h" using namespace std; int main() { BinarySearchTree<int> bst ...
分类:
其他好文 时间:
2020-02-02 00:53:27
阅读次数:
88