二叉查找树简介
集合操作
search搜索
mininum寻找子树的最小key节点
maxnum子树最大key节点
predecessor前序寻找比此节点小的最大节点
succesor后序
insert插入
delete删除
c实现二叉查找树简介二叉查找树(Binary Search Tree),又被称为二叉搜索树。
它是特殊的二叉树:对于二叉树,假设x为二叉树中的任意一个结点,x节点包含关键字k...
分类:
编程语言 时间:
2015-04-08 11:01:45
阅读次数:
231
二叉树的遍历原因:将序列编程图或者二叉树的形式,确实很直观。但是,最终的处理是交给计算机,计算机的处理只有判断、循环等,也就是只可以处理先行序列。而二叉树的遍历就是将序列的树结构编程线性序列,将线性序列交给计算机处理。二叉树的遍历大致分为四种:前序遍历、中序遍历、后序遍历,层序遍历。前序遍历(从上向下):从根节点开始并且取根节点值,遍历根节点的所有左子树以及左子树的所有节点,然后再进行根节点的右子树...
分类:
其他好文 时间:
2015-04-07 17:50:10
阅读次数:
135
前序遍历:先访问跟结点,然后遍历左子树,最后遍历右子树。即“根左右”。
实现代码:
class Solution {
public:
vector preorderTraversal(TreeNode *root) {
if (root==NULL) {
return vector();
}
vector resu...
分类:
其他好文 时间:
2015-04-07 17:49:55
阅读次数:
120
题目链接:点击打开链接
题意:
给出逆序数的值,求原序列(一个1-N的排列)
1, 2, 0, 1, 0 表示1的逆序数是1,2的逆序数是2,3的逆序数是0···
思路:
从最后一个数开始插,每次插到当前序列的第a[i]个数。。
splay模拟
== 这个方法比较直(wu)观(nao),别的方法并没有想出来。。
#include
#includ...
分类:
其他好文 时间:
2015-04-05 23:37:42
阅读次数:
550
思路:(1)需要了解前序遍历和和中序遍历的特点,前序遍历第一个元素即为根节点,然后再在中序遍历以这个根节点为界限得到宏观上的左子串和右子串,如下图(2)又可以将截取的子串分为新的子串问题,从而可以通过迭代来解决,(3)构建左子树:主要就是指针的运用,获取前序遍历左子串的起始地址和子串长度,中序遍历左...
分类:
其他好文 时间:
2015-04-05 20:14:13
阅读次数:
141
题目:
Given preorder and inorder traversal of a tree, construct the binary tree.Note:
You may assume that duplicates do not exist in the tree.
根据前序遍历和中序遍历结果构造二叉树。思路分析:
分析二叉树前序遍历和中序遍历的结果我们发现:
二叉树中序遍...
分类:
其他好文 时间:
2015-04-03 22:32:25
阅读次数:
234
思路:
1.将中序遍历序列和其对应的下标存储到一个map中,方便下面的查找
2.递归选取前序序列的第一个元素作为树的根节点,然后查找根节点在前序序列中位置inorderIndex,inorderIndex-startInorder可以得到左子树的长度
3.根据左子树的长度和startPreOrder可以求出前序序列中左子树的起始位置
4.从上面可以求出左右子树的前序序列和中序序列的起始位置,递归调用建树过程即可。
PS:其实,对于这道题,有更简单的方法,可根据按前序序列元素出现的顺序依次作为树的根节点进行...
分类:
其他好文 时间:
2015-04-03 15:17:20
阅读次数:
133
thinking:
(1)每次选择输出的数字是当前序列中最小的,记该数字下标为 index,数字为a
(2)检查index 之后的最小数为b
(3)如果index之前有小于b且大于a的数字出现,说明这些数字是乱序的数字,要和a一行保序输出
code:
int output_in_order(vector &unordered_sequence)
{
int next_ou...
分类:
其他好文 时间:
2015-04-03 11:32:01
阅读次数:
129
什么也不说了,直接上代码。首先是节点类,大家都懂得/** * 二叉树的节点类 * * @author HeYufan * * @param */class Node>{ /** * 节点储存的值 */ private T data; /** * 左子节点 */ private Node...
分类:
编程语言 时间:
2015-04-03 06:45:14
阅读次数:
207
题目:
Given a binary tree, return the preorder traversal of its nodes’ values.For example:
Given binary tree {1,#,2,3},1
\
2
/
3return [1,2,3].Note: Recursive solution is triv...
分类:
其他好文 时间:
2015-04-01 21:56:42
阅读次数:
96