练习树剖的时候找到了 https://www.luogu.org/problem/P3313 于是顺便学习了一下动态开点线段树。 这里写一点心得。 很多线段树不是满二叉树就会造成空间浪费,而动态开点就可以解决这个问题。那么怎么动态开点呢? 结合这题来看一下吧。 ...
分类:
其他好文 时间:
2019-09-13 10:46:56
阅读次数:
70
知识摘要: 1.二叉搜索树(又叫:二叉排序树,二叉查找树): 遵循: Tree.left.val<Tree.val<Tree.right.val. 所以它的中序遍历一定是一个有序列。 2.其他一些树: 满二叉树:从上往下,除了叶子结点外,其他结点的左右子节点都存在。 完全二叉树:比满二叉树少几个叶子 ...
分类:
其他好文 时间:
2019-09-05 23:06:46
阅读次数:
91
蒟蒻最近学习了一些数据结构,下面是蒟蒻的总结。 $$$$ 1.线段树合并 === 所谓线段树合并,字面上理解,就是将两颗线段树合并在一起,所以多用于权值 线段树,而且多在 树形结构 的题中出现。然而对两颗满二叉树的合并一次复杂 度会达到$O(nlog_2n)$ 对于总操作$m$,一般来说每次就是动态 ...
分类:
其他好文 时间:
2019-09-02 11:24:21
阅读次数:
91
题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 相关题目: 判断一棵满二叉树是否为二叉搜索树:给定一棵满二叉树,判定该树是否为二叉搜索树,是的话打印True,不是的话打印False 将满二叉树转换为求和树:给满出二叉树,编写算法将其转化为求和树【求和 ...
分类:
其他好文 时间:
2019-08-29 18:33:49
阅读次数:
152
题目描述思路分析测试用例Java代码代码链接题目描述请实现两个函数,分别用来序列化和反序列化二叉树。二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是... ...
分类:
其他好文 时间:
2019-08-19 10:05:43
阅读次数:
92
数据结构与算法基础: 顺序存储结构 链式存储结构 什么是树结构?为什么使用树结构?树的基本概念 二叉树: 任何一个节点的子节点数量不超过2 二叉树的子节点分左节点和右节点 满二叉树:所有的叶子节点都在最后一层,而且节点总数为2的n次方-1【n是树的高度】完全二叉树:所有叶子节点都在最后一层或者倒数第 ...
分类:
编程语言 时间:
2019-08-04 01:53:32
阅读次数:
147
二叉树的存储-顺序存储 完全二叉树:对结点按照上至下、从左到右的次序进行存储 特点: 结点间关系蕴含在其存储位置中(性质5) 1、非根结点i的父结点序号为[i/2] 2、结点i的左孩子序号为2i 3、结点i的右孩子序号为2i+1 适用于满二叉树和完全二叉树 二叉树性质5 如果对一棵有n个结点的完全二 ...
分类:
其他好文 时间:
2019-07-19 23:56:51
阅读次数:
241
堆排序介绍 堆排序是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。 可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。 什么是完全二叉树呢?还有满二叉树又是怎么的一种二叉树呢?还有完满二叉树? 完全二叉树: 除了最后一层之外的其他每一层都被完全填 ...
分类:
编程语言 时间:
2019-07-07 12:38:47
阅读次数:
109
满二叉树:深度为k,有2^k-1个结点的二叉树。 完全二叉树:具有n个结点,深度为k,所有结点对应于深度为k的满二叉树中编号为1-n的结点。 在二叉树的第i层最多有2^(i-1)个结点 深度为k的二叉树最多有2^k - 1个结点 左结点2i ,右节点2i+1.(完全二叉树) 具有n个结点的完全二叉树 ...
分类:
其他好文 时间:
2019-06-28 22:47:19
阅读次数:
138
题意 计算完全二叉树节点数。 题解 不使用遍历方法,优化时间复杂度到O(H^2)。 高度为h的满二叉树节点数为2^h 1。 设计递归函数search(Node root,int h,int H),返回当前节点roo为根的完全二叉树的节点数。h代表该节点在的高度,高度从1计算,H代表原始二叉树的高度始 ...
分类:
其他好文 时间:
2019-06-22 01:31:38
阅读次数:
149