二叉查找树: 优点:二分查找 缺点:最差情况变成了链表 平衡二叉树: 优点:树的高度差不超过1 缺点:每个节点存储存储的数据太少,每次从磁盘拿数据不够page的16kb,导致树的深度过大(瘦长型)。读不够 多路平衡查找树(B树):分叉数比关键字多1(通过树的合并和分裂来保证新加入的关键字的有序性) ...
分类:
数据库 时间:
2020-12-08 12:34:56
阅读次数:
9
Leetcode 108 将有序数组转换为二叉搜索树 数据结构定义: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是: ...
分类:
编程语言 时间:
2020-12-05 11:08:08
阅读次数:
9
有了二叉搜索树为什么还要红黑树,以下面几个例子举例,如下面的二叉树可以达到很好的搜索效果 5 7 11 15 19 21 25 26 61 99 再看下面这棵树,我们将下面的数据按从左至右的顺序构造一棵二叉搜索树 15 13 16 11 9 7 5 3 按照之前我们二叉搜索树构建构建的方式,我们将得 ...
分类:
编程语言 时间:
2020-12-03 12:28:09
阅读次数:
15
给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/balanced-binary-tree 著作 ...
分类:
其他好文 时间:
2020-12-03 11:59:09
阅读次数:
6
二叉堆是一种应用很广的数据结构,今天,我们就来简单讲讲二叉堆。什么是二叉堆?二叉堆是一种特殊的堆。具有如下的特性:具有完全二叉树的特性。堆中的任何一个父节点的值都大于等于它左右孩子节点的值,或者都小于等于它左右孩子节点的值。根据第二条特性,我们又可以把二叉堆分成两类:1、最大堆:父节点的值大于等于左右孩子节点的值。2、最小堆:父节点的值小于等于左右孩子节点的值。我们把二叉堆的根节点称之为堆顶。根据
分类:
编程语言 时间:
2020-12-02 12:34:24
阅读次数:
6
一.描述 一个简单的二叉树的例子,比如求二叉树的所有节点的和 比如下面这棵树,所有节点的和为 1+2+3=6 二.递归法来求解 通过树的结构可以得到解法,即总和为当前节点的和加上左节点的和加上右节点的和 即 Sum = cur.val + cur.left.val + cur.right.val 根 ...
分类:
其他好文 时间:
2020-12-02 12:27:26
阅读次数:
4
大咖揭秘Java人都栽在了哪?点击免费领取《大厂面试清单》,攻克面试难关~>>> 非递归遍历实现思路: #include <stdlib.h> #include <stdio.h> #include <iostream> #include <string.h> typedef struct LINK ...
分类:
编程语言 时间:
2020-12-02 12:09:38
阅读次数:
8
108. 将有序数组转换为二叉搜索树 Difficulty: 简单 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树_每个节点 _的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是 ...
分类:
编程语言 时间:
2020-12-01 12:09:01
阅读次数:
6
void copy(BiTree T,BiTree &NewT){ //复制树 if(T == NULL){ NewT = NULL; return; }else { NewT = new BiTNode; NewT->data = T->data; copy(T->lchild,NewT->lch ...
分类:
其他好文 时间:
2020-11-30 15:28:17
阅读次数:
2
CF1010F Tree [* easy] 给定一棵根节点为 $1$ 的二叉树 \(T\),你需要先保留一个包含 $1$ 号节点的连通块,然后给每个点确定一个权值 \(a_i\),使得对于每个点 \(u\) 都有其权值 \(a_u\) 大于等于其所有儿子的权值和 \(\sum a_v[(u,v)\i ...
分类:
其他好文 时间:
2020-11-27 11:06:06
阅读次数:
6