背景知识: 完全二叉树:除了最后一层,所有层的节点数达到最大,与此同时,最后一层的所有节点都在最左侧。(堆使用完全二叉树) 满二叉树:所有层的节点数达到最大。一棵层数为 h 的满二叉树,其节点数为2^h - 1个。 思路1:层序遍历 或 递归 遍历整棵树。 但没用到 完全二叉树 的性质。。不可取 思 ...
分类:
其他好文 时间:
2020-12-29 11:35:11
阅读次数:
0
承接【数据结构】跳表(SkipList)原理篇,本篇文章我们来分析下如何使用代码实现SkipList。在JDK中并没有SkipList的直接实现,当然我们可以自己写代码实现,但是为了给后面“一致性Hash算法”系列文章做铺垫, 这里我选择 ConcurrentSkipListMap 类来进行分析。 ...
分类:
其他好文 时间:
2020-12-29 11:19:49
阅读次数:
0
数据结构是一种特殊的组织和存储数据的方式,使我们可以更高效的对存储的数据执行操作。以下介绍常用的数据结构中的特殊树结构——二叉树。 二叉树是一种特殊的树结构,也是最常用的树结构,其存储和处理比一般树简单,一般树可以通过简单的转换得到与之对应的二叉树。 二叉树的定义: 二叉树是n个结点所构成的集合,或 ...
分类:
其他好文 时间:
2020-12-29 11:03:09
阅读次数:
0
二叉树的锯齿形层序遍历 题目: 给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回锯齿形层序遍历如下: [ [3], [2 ...
分类:
其他好文 时间:
2020-12-28 11:27:02
阅读次数:
0
☆☆☆思路:剑指18.二叉树的镜像 方法1:递归。二叉树此类递归问题,要以根节点为目标点进行分析。 思路1:首先分别翻转根节点的左右子树,然后交换左右子树的位置即可。 思路2:也可以先交换左右子树的位置,然后再分别翻转根节点的左右子树。 方法2:BFS层序遍历 层序遍历树的所有节点,然后交换其左右节 ...
分类:
其他好文 时间:
2020-12-28 11:24:22
阅读次数:
0
题目描述 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 输入:[1,2,3] 1 / \ 2 3 输出:6 示例 2: 输入:[-10,9,20,null,nul ...
分类:
其他好文 时间:
2020-12-25 12:51:52
阅读次数:
0
通道(Channel) /* 通道(channel)是用来传递数据的一个数据结构。 */ ch1 := make(chan int ,2) //创建一个可读可写的双向管道 ch1 <- 10 ch1 <- 12 m1 := <-ch1 m2 := <-ch1 fmt.Println(m1,m2) c ...
分类:
其他好文 时间:
2020-12-25 12:21:49
阅读次数:
0
前言 上一篇文章只是简单地认识下二叉树,并未提到它的缺陷。数据结构的好坏取决于时间复杂度,由于每次操作(插入、删除、查找)需要与节点比较来选择进入到左子树还是右子树,也就是说每次比较都会排除一些可能(选择左右其中一侧),当然了这是对于随机均匀分布的二叉树来说,它的时间复杂度是O(log2n),但是对 ...
分类:
其他好文 时间:
2020-12-25 12:14:00
阅读次数:
0
文档间可以通过嵌入和引用来建立联系。MongoDB 中的关系可以是: 1:1 (1对1) 1: N (1对多) N: 1 (多对1) N: N (多对多) 嵌入式关系 这种数据结构的缺点是,如果用户和用户地址在不断增加,数据量不断变大,会影响读写性能 文档嵌套的数量和深度没有限制,但MongoDB目 ...
分类:
数据库 时间:
2020-12-25 12:02:37
阅读次数:
0
STL stl基本概念 STL(Standard Template Library,标准模板库),是惠普实验室开发的一系列软件的统称。现在主要出现在 c++中,但是在引入 c++之前该技术已经存在很长时间了。 STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(i ...
分类:
其他好文 时间:
2020-12-25 11:54:42
阅读次数:
0