/* 6.5 二叉树 二叉树具有五种基本形态: 1.空二叉树。2.只有一个根节点。3.根结点只有左子树。4.根结点只有右子树。5.根节点既有左子树又有右子树。 特殊二叉树: 1.斜树 斜树一定要是斜的,但是往哪斜还是有讲究,所有结点都只有左子树的二叉树叫左斜树。所有结点都只有 右子树的二叉树叫右斜树 ...
分类:
其他好文 时间:
2020-07-03 21:32:30
阅读次数:
61
题目链接 题解 考虑对于一个节点,其所有的路径分为两种:经过根节点和不经过根节点。运用点分治就可以每次计算对于当前树而言,经过根的总贡献。而剩余没有经过根的部分,则在删到根节点形成新的树之后递归求解,这样一定是可以做到不重不漏的。 接下来,就该考虑如何统计贡献。假设先将根节点定为起点,那么在一条路径 ...
分类:
其他好文 时间:
2020-07-03 19:32:11
阅读次数:
55
题目链接 108. 将有序数组转换为二叉搜索树 思路分析 这个题要求我们将一个升序的数组转变成二叉搜索树,那么其实思路很容易了,就是使用二分的方法,把数组中的中间位置的数据作为当前树的根节点,它的左边的数成为它的左子树,右边的数成为它的右子树。 代码实现 /** * Definition for a ...
分类:
编程语言 时间:
2020-07-03 10:49:38
阅读次数:
53
解题思路: 这道题是要将有序数组转为二叉搜索树,所谓二叉搜索树,是一种始终满足左<根<右(另外一种更直白的解释,二叉搜索树:空树或者二叉树的所有节点比他的左子节点大,比他的右子节点小。)的特性的二叉树,如果将二叉搜索树按中序遍历的话,得到的就是一个有序数组了。那么反过来,我们可以得知,根节点应该是有 ...
分类:
编程语言 时间:
2020-07-03 10:45:13
阅读次数:
60
第一次写动态dp居然是这种毒瘤题 直接求稳定度为$x$感觉不好求 我们差分一下转为求稳定度小于等于$x$的所有方案减去稳定度小于等于$x-1$的所有方案 注意到叶子结点的权值都是不相同的 我们考虑贡献答案的叶子结点到根的那条链 考虑根节点的权值$w$改变实际上就是链上有点的权值改变了 所以我们考虑容 ...
分类:
其他好文 时间:
2020-07-02 22:06:45
阅读次数:
76
/* 树(Tree) 6.3 树的抽象数据类型 相对于线性结构,树的操作就完全不同了,这里我们给出一些基本和常用操作。 ADT 树(tree) Data 树是由一个根节点和若干棵子树构成。树中结点具有相同数据类型及层次关系。 Operation InitTree(*T); 构造空树T Destroy ...
分类:
其他好文 时间:
2020-07-02 21:49:03
阅读次数:
90
Object Object类是Java中所有的的父类,相当于树结构中的根节点ROOT;如果一个类没有明确的标明继承自哪个类,都默认继承自Object类。所以,Java中所有的对象都能赋值给Object类型的引用(多态)。其次,由于子类中能够继承父类中的公开方法。因此,Object 类中所有的公开方法 ...
分类:
其他好文 时间:
2020-07-02 16:24:03
阅读次数:
59
转自——作者:奋力向上的猪——树、森林和二叉树的转换——清晰的一塌糊涂。 1、树转换为二叉树 (1)加线。在所有兄弟结点之间加一条连线。 (2)去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。 (3)层次调整。以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之 ...
分类:
其他好文 时间:
2020-07-01 12:50:41
阅读次数:
75
图的遍历DFS 与树的深度优先遍历之间的联系 树的深度优先遍历分为:先根,后根 //树的先根遍历 void PreOrder(TreeNode *R){ if(R!=NULL){ visit(R); //访问根节点 while(R还有下一个子树T) PreOrder(T); //先根遍历下一棵子树 ...
分类:
其他好文 时间:
2020-06-30 14:54:31
阅读次数:
55
###题目描述 二叉树是一种基本的数据结构,它要么为空,要么由根节点,左子树和右子树组成,同时左子树和右子树也分别是二叉树。 当一颗二叉树高度为 \(m?1\) 时,则共有 \(m\) 层。除 \(m\) 层外,其他各层的结点数都达到最大,且结点节点都在第 \(m\) 层时,这就是一个满二叉树。 现 ...
分类:
其他好文 时间:
2020-06-29 09:52:35
阅读次数:
50