码迷,mamicode.com
首页 >  
搜索关键字:二叉搜索树 二叉查找树    ( 2575个结果
红黑树
红黑树是一个二叉搜索树,具有如下规则: 每个节点不是红色就是黑色。根节点必须为黑色。如果节点为红,其子节点必须为黑,父子节点不得同时为红。任一节点至NULL(NULL为黑色)的任何路径,所含黑节点数必须相同。 根据规则4,新增节点必须为红。 根据规则3,新增节点的父节点必须为黑。 因为新增节点必须是红,那么只有在父节点不为黑的时候才需要调整,父节点为黑则无需调整。 着...
分类:其他好文   时间:2014-05-14 15:29:28    阅读次数:287
[leetcode]Convert Sorted Array to Binary Search Tree @ Python
原题地址:http://oj.leetcode.com/problems/convert-sorted-array-to-binary-search-tree/题意:将一个排序好的数组转换为一颗二叉查找树,这颗二叉查找树要求是平衡的。解题思路:由于要求二叉查找树是平衡的。所以我们可以选在数组的中间那...
分类:编程语言   时间:2014-05-12 21:44:57    阅读次数:379
[leetcode]Convert Sorted List to Binary Search Tree @ Python
原题地址:http://oj.leetcode.com/problems/convert-sorted-list-to-binary-search-tree/题意:将一条排序好的链表转换为二叉查找树,二叉查找树需要平衡。解题思路:两个思路:一,可以使用快慢指针来找到中间的那个节点,然后将这个节点作为...
分类:编程语言   时间:2014-05-12 21:07:00    阅读次数:405
线段树
线段树札记线段树不是区间树,线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。注意他是把一段连续的区间分为单元区间为叶子节点的一颗数,以此为基础,展开一系列牛逼的计算。首先就是如何建立这么一个线段树?如此递归地建立,对于线段树中的每一个非叶子...
分类:其他好文   时间:2014-05-11 22:58:35    阅读次数:458
二叉查找树
相关性质 可查看维基百科"二叉查找树"关键性质:设root为二叉查找树的结点 如果a是root的左结点 key[a] 2 #include 3 using namespace std; 4 /*二叉查找树*/ 5 /*实现中假设关键元素互不相同*/ 6 typedef i...
分类:其他好文   时间:2014-05-10 02:28:24    阅读次数:630
leetcode第一刷_Unique Binary Search Trees
这道题其实跟二叉搜索树没有什么关系,给定n个节点,让你求有多少棵二叉树也是完全一样的做法。思想是什么呢,给定一个节点数x,求f(x),f(x)跟什么有关系呢,当然是跟他的左右子树都有关系,所以可以利用其左右子树的结论,大问题被成功转化成了小问题。最熟悉的方法是递归和dp,这里显然有大量的重复计算,用dp打表好一些。 后来实验的同学说,这其实是一个Catalan数,上网查了一下,果然啊。Catal...
分类:其他好文   时间:2014-05-09 14:47:53    阅读次数:229
B树、B-树、B+树、B*树
B树即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字...
分类:其他好文   时间:2014-05-09 05:44:56    阅读次数:275
leetcode第一刷_Recover Binary Search Tree
这是一道好题,思路虽然有,但是提交之后总是有数据过不了,又按照数据改改改,最后代码都没法看了。收到的教训是如果必须为自己的代码加上很多很多特殊的限定,来过一些特殊的数据的话,说明代码本身有很大的漏洞。 这道题,我想到了要用两个指针保存乱序的节点,甚至想到了用一个pre指针来保存前面一个节点,但是问题出在哪里呢?我觉得应该是自己对树的遍历理解的不够深刻。既然知道了二叉搜索树一定是用中序遍历的,那么...
分类:其他好文   时间:2014-05-09 01:54:42    阅读次数:250
leetcode第一刷_Validate Binary Search Tree
有了上面的教训,这道题就简单多了,什么时候该更新pre是明确的了,倒是有个细节,二叉搜索树中是不允许有相等节点的,所以题目的要求用黑体字标明了。写的时候注意就可以了。 class Solution { public: TreeNode *pre = NULL; bool isValidBST(TreeNode *root) { if(root == NULL) ...
分类:其他好文   时间:2014-05-09 01:33:43    阅读次数:269
leetcode第一刷_Balanced Binary Tree
二叉平衡树好火啊,几乎每个公司的笔试题里都有它,考了好多次我都不会,挂笔试很有可能就是因为它,还有一个它的同伙叫二叉搜索树,貌似人气比它还要高一些。二叉平衡树是什么样的树呢,是每个节点的左右子树高度相差绝对值都不超过1。好,你说你终于回了,这不很简单吗,求一下根节点的左右字数高度,如果满足,他就是,否则就不是嘛。不是啊亲,要求是所有节点都满足这个条件,判断的时候必须每个节点都验证的! 扯了这么长...
分类:其他好文   时间:2014-05-08 11:05:26    阅读次数:286
2575条   上一页 1 ... 254 255 256 257 258 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!