解题报告
题目传送门
题意:
求面积交。
思路:
不会呀。
只知道线段树应该维护覆盖数大于2的线段长度。
不会更新,看了别人写的理解的,太菜了。
用sum1和sum2分别来表示覆盖数为1的区间长度和覆盖数为2的区间长度。
更新时即要更新sum1也要更新sum2;
区间如果被覆盖
sum1为实际区间长度,如果覆盖一次,sum2为左右子树的sum1和,覆盖两次就为实际区间长度。
...
分类:
其他好文 时间:
2014-08-12 17:11:04
阅读次数:
205
1、堆 一棵完全二叉树 大顶堆:所有非叶子节点元素均不小于其左右子树根节点的值 小顶堆:所有非叶子节点元素均不大于其左右子树根节点的值2、 初始化堆 ①一组无序元素R[0, 1, ..., n - 1], 先按照顺序将该组无序元素构造为一棵完全二叉树 ②从该二叉树的第一个非叶子结点开始调整...
分类:
其他好文 时间:
2014-08-12 03:06:43
阅读次数:
259
思路:先序的第一个元素和后序的最后一个元素是当前子树的根,然后遍历中序序列,找到左右子树的分界线,递归建左子树和右子树。
class Solution {
public:
/*由于是oj,这里假设给的序列是合法的,正常情况是需要判断不合法情况的 */
TreeNode *buildTree(vector &inorder, vector &postorder,int instar...
分类:
其他好文 时间:
2014-08-11 21:37:42
阅读次数:
504
问题描述:输入一颗二元查找树,将该树转换为它的镜像树,即对每一个节点,互换左右子树。例如输入: 6/ \4 12/ \ / \25 816输出: 6/ \12 4/ \ / \16852定义二元查找树的结点为:typedef struct BSTree { int dat...
分类:
其他好文 时间:
2014-08-10 23:48:50
阅读次数:
316
首先来看看set集合容器:
set集合容器实现了红黑树的平衡二叉树数据结构,在插入元素时它会自动调整二叉树的排列,把该元素放到适当的位置,并且
保证左右子树平衡。平衡二叉检索树采用中序遍历算法。
对于set,vector,map等等,它们的前向迭代器定义是这样的(以set为例):
set::iterator it;
for(it=s.be...
分类:
其他好文 时间:
2014-08-07 19:01:10
阅读次数:
269
二叉查找树BST----java实现
1.二叉查找树简介
二叉查找树又名二叉搜索树和二叉排序树。性质如下:
在二叉查找树中:
(01) 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(02) 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(03) 任意节点的左、右子树也分别为二叉查找树。
(04) 没有键值相等的节点(no dupl...
分类:
编程语言 时间:
2014-08-07 03:07:38
阅读次数:
418
题目描述:
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
输入:
输入可能包含多个测试样例。
对于每个测试案例,输入的第一行为一个数n(0
接下来的n行,每行为一个二叉搜索树的先序遍历序列,其中左右子树若为空则用0代替。
输出:
对应每个测试案例,
输出将二叉搜索树转换...
分类:
其他好文 时间:
2014-08-06 14:50:01
阅读次数:
203
对于一颗二叉树,可以根据先序遍历(后序遍历)和中序遍历重新还原出二叉树。
主要通过递归实现。
关键是找出对应左右子树的长度,之后传递先序遍历的开始节点、结束节点,中序遍历的开始节点、结束节点。
代码:
#include
using namespace std;
typedef struct tree{
int data;
struct tree *lchild;
struct ...
分类:
其他好文 时间:
2014-08-05 19:27:30
阅读次数:
224
1、min和max为奇数,否则min和max非叶子,还可以向下拓展
2、根据满二叉树的性质,x的左右子树的个数都为2的k次方减1个节点
3、根据二叉树搜索的性质,左子树编号的区间为[min,x-1],右子树的编号区间为[x+1,max]
由此得出min=x-(2^k-1),max=x+(2^k-1)
lowbit的作用,计算x对应的二进制数中第一个1的位置k,返回权值2k。
这个函数的作用就是求出t这个数的二进制存储下,最高的非0bit所表示的大小。
即满足2^k<=t的最大的2^k,其中k为非负整数。...
分类:
其他好文 时间:
2014-08-04 21:45:28
阅读次数:
294
问题:判断二叉树是否为平衡二叉树分析:树上的任意结点的左右子树高度差不超过1,则为平衡二叉树。 搜索递归,记录i结点的左子树高度h1和右子树高度h2,则i结点的高度为max(h1,h2)=1,|h1-h2|>1则不平衡/** * Definition for binary tree * str...
分类:
其他好文 时间:
2014-08-04 13:39:57
阅读次数:
183