[TOC] 一、二叉搜索树的相同判断 二叉搜索树是一种特殊的二叉树,在一定程度上是基于二分查找思想产生的,在它的任何一个节点node处,node的左子树中的所有元素都比node本身的数值要小,而node的右子树中的所有元素都比node本身要大。 二、问题引入 与普通的二叉树不同,任意给一串不重复的数 ...
分类:
编程语言 时间:
2019-09-21 13:04:25
阅读次数:
115
poi~ 原题目 点无非分为两种 割点 & 非割点 根据题目可得 , 对于非割点答案显然是 ans = (n - 1) * 2; 那么对于割点怎么处理答案呐? 把她分成两部分处理 对于一个点 fa 他的所有子树(搜索树中)的 size 互相乘起来 , 因为子树间互相断开不能联系 然后把所有子树的 s ...
分类:
其他好文 时间:
2019-09-21 13:00:22
阅读次数:
80
[TOC] 一、题意理解 给定一个插入序列就可以唯一确定一颗二叉搜索树。然而,一颗给定的二叉搜索树却可以由多种不同的插入序列得到。例如:按照序列 {2, 1, 3} 和 {2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。 问题:对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜 ...
分类:
编程语言 时间:
2019-09-21 12:33:17
阅读次数:
119
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 之前对于二 ...
分类:
其他好文 时间:
2019-09-18 19:24:52
阅读次数:
124
mysql 三种常见数据库索引结构 哈希表 哈希表只是键值数据结构,比较适合等值查找 有序数组 有序数组在等值查询和范围查询场景中的性能都非常优秀 (如二分法查找),缺点更新时成本比较高。比较适合静态存储引擎 索引树 二叉搜索树特点是:每个节点的左儿子小于父节点,右儿子大于父节点,查询时间复杂度是O ...
分类:
数据库 时间:
2019-09-17 17:24:16
阅读次数:
104
[TOC] 更新、更全的《数据结构与算法》的更新网站,更有python、go、人工智能教学等着你: 一、什么是二叉搜索树 首先让我们回顾之前说过的查找问题:上次我们之讲过了静态查找,这次我们将通过二叉搜索树实现动态查找。但是针对动态查找,数据该如何组织呢? 二叉搜索树(BST,Binary Sear ...
分类:
其他好文 时间:
2019-09-16 19:22:16
阅读次数:
118
[TOC] 例题:hdu 4585 Treap树 是一种简单的平衡二叉搜索树。 二叉搜索树的每一个节点都有一个键值,除此之外Treap树为每个节点人为添加了一个称之为优先级的权值。对于键值来说,这是一棵二叉搜索树,对于权值来说这是一个堆。 1、Treap树的唯一性 Treap树的重要特性:另每个节点 ...
分类:
其他好文 时间:
2019-09-15 01:20:54
阅读次数:
104
0x21 树与图的遍历 树与图的深度优先遍历 深度优先遍历,就是在每个点$x$上面的的多条分支时,任意选择一条边走下去,执行递归,直到回溯到点x后再走其他的边 树的DFS序 一般来说,我们在对树的进行深度优先时,对于每个节点,在刚进入递归时和回溯前各记录一次该点的编号,最后会产生一个长度为$2N$的 ...
分类:
其他好文 时间:
2019-09-14 17:04:45
阅读次数:
99
自平衡二叉查找树 它是为了解决二叉查找树的查找时间复杂度最差是O(n)的问题而发明的数据结构算法。 BST的查找运行时间和BST的高度有关。一个树的高度指的是从树的根开始所能到达的最长的路径长度。 因为二叉搜索树的结构可能是一个链表,在这种情况下,在 BST 中查找节点与在数组(Array)中查找就 ...
分类:
其他好文 时间:
2019-09-13 22:19:32
阅读次数:
177
平衡树 Treap实现 思路: 利用堆的性质, 让二叉搜索数满足堆的性质,从而达到logn的高度. 模板 具体解释看注释,注释也不多(逃) 代码: c++ / 平衡数Treap模板 Treap 可以理解为一棵树加上一个堆, 通过对每个节点赋予一个随机值 在满足堆的性质的同时满足二叉搜索树的性质, 保 ...
分类:
其他好文 时间:
2019-09-13 20:18:33
阅读次数:
80