码迷,mamicode.com
首页 >  
搜索关键字:左右子树    ( 865个结果
HDU1255_覆盖的面积(扫描线/线段树+离散)
解题报告 题目传送门 题意: 求面积交。 思路: 不会呀。 只知道线段树应该维护覆盖数大于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
IT公司100题-15-求二元查找树的镜像
问题描述:输入一颗二元查找树,将该树转换为它的镜像树,即对每一个节点,互换左右子树。例如输入: 6/ \4 12/ \ / \25 816输出: 6/ \12 4/ \ / \16852定义二元查找树的结点为:typedef struct BSTree { int dat...
分类:其他好文   时间:2014-08-10 23:48:50    阅读次数:316
STL之set详解(二)
首先来看看set集合容器:   set集合容器实现了红黑树的平衡二叉树数据结构,在插入元素时它会自动调整二叉树的排列,把该元素放到适当的位置,并且 保证左右子树平衡。平衡二叉检索树采用中序遍历算法。   对于set,vector,map等等,它们的前向迭代器定义是这样的(以set为例):   set::iterator it; for(it=s.be...
分类:其他好文   时间:2014-08-07 19:01:10    阅读次数:269
二叉查找树BST----java实现
二叉查找树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
POJ 2309 BST
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
Balanced Binary Tree
问题:判断二叉树是否为平衡二叉树分析:树上的任意结点的左右子树高度差不超过1,则为平衡二叉树。 搜索递归,记录i结点的左子树高度h1和右子树高度h2,则i结点的高度为max(h1,h2)=1,|h1-h2|>1则不平衡/** * Definition for binary tree * str...
分类:其他好文   时间:2014-08-04 13:39:57    阅读次数:183
865条   上一页 1 ... 79 80 81 82 83 ... 87 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!