题目:给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。 思路:中序遍历,计数判断k ...
分类:
其他好文 时间:
2017-04-11 09:50:58
阅读次数:
135
题目 题目 给定一个二叉树的头节点head,已知其中所有节点的值都不一样,找到含有节点最多的搜索二叉子树,并返回这个子树的头节点。 例如, 最大搜索子树如右图 解析 解析 首先解释一下什么是最大搜索子树,就是二叉搜索树,任意节点的值必定大于左子树的最大值,小于右子树的最小值,且左右子树都是二叉搜索树 ...
分类:
编程语言 时间:
2017-04-10 22:28:25
阅读次数:
212
BETWEEN 操作符 操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。 SQL BETWEEN 语法 重要事项 不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Adams" 和 "Carter" ...
分类:
数据库 时间:
2017-04-06 15:30:47
阅读次数:
260
B-Tree介绍 B-Tree是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字) 5.非 ...
分类:
其他好文 时间:
2017-04-04 23:34:16
阅读次数:
279
题目 对于一棵满二叉搜索树深度为K,节点数为2^k - 1,节点值为[1, 2^k - 1]。给出k和任意三个节点的值,输出包含该三个节点的最小子树的根节点值。 输入: 4 10 15 13 输出:12 思路 二分搜索,当搜索到节点x时,若x为三个节点之一或三个节点不在以x为根节点的树的子树的同一侧 ...
分类:
其他好文 时间:
2017-04-03 21:55:23
阅读次数:
229
该文我会用来总结二叉树相关的知识 二叉树如下图: 二叉树的结构 二叉树构造方法 为了测试二叉树的的各种算法,我不得不写一个二叉树的构造方法,我主要是用层次遍历的方式来构造二叉树的。层次遍历在后面会详细说到。 用字符串的方式来输入二叉树的序列,例如: 输入:1 2 3 4 5 6 7 null nul ...
分类:
其他好文 时间:
2017-04-03 11:45:18
阅读次数:
150
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。 输入格式: 输入包含若干组 ...
分类:
其他好文 时间:
2017-04-01 00:53:00
阅读次数:
214
B-树:多路搜索树,每个结点存储M/2到M个关键字,非叶子结点存储指向关键字范围的子结点;所有关键字在整颗树中出现,且只出现一次,非叶子结点可以命中; B+树:在B-树基础上,为叶子结点增加链表指针,所有关键字都在叶子结点中出现,非叶子结点作为叶子结点的索引;B+树总是到叶子结点才命中; B*树: ...
分类:
其他好文 时间:
2017-03-31 23:32:59
阅读次数:
153
二叉搜索树与双向链表 字符串的排列 数组中出现次数超过一半的数字 最小的K个数 连续子数组的最大和 26.输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向 27.输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串ab ...
分类:
其他好文 时间:
2017-03-30 23:34:32
阅读次数:
383
1、题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 2、解题思路: (1)将左子树构造成双向链表,并返回链表头节点; (2)定位左子树双链表的尾节点; (3)如果左子树链表不为空,将当前root连缀其链尾; (4)将右子 ...
分类:
其他好文 时间:
2017-03-30 23:04:36
阅读次数:
214