题目:
Given n, how many structurally unique BST's (binary search trees) that store values 1...n?
For example,
Given n = 3, there are a total of 5 unique BST's.
1 3 3 2 ...
分类:
编程语言 时间:
2015-08-20 15:22:03
阅读次数:
180
源代码如下:
#include
#include
//#define Key int
#define hl h->l
#define hr h->r
#define hlr h->l->r
#define hll h->l->l
#define hrr h->r->r
#define hrl h->r->l
typedef int Key;
struct Item{
Key key;
c...
分类:
其他好文 时间:
2015-08-20 13:07:34
阅读次数:
166
源代码如下:
这里的Key 不当为关键字对待, 而是把Item.c作为关键字对待
#include
#include
//#define Key int
typedef int Key;
struct Item{
Key key;
char c;
};
typedef struct STnode* link;
struct STnode{
Item item ; li...
分类:
编程语言 时间:
2015-08-20 10:37:16
阅读次数:
122
原代码如下:
#include
#include
//#define Key int
typedef int Key;
struct Item{
Key key;
char c;
};
typedef struct STnode* link;
struct STnode{
Item item ; link l,r; int N;
};
static link head , z...
分类:
编程语言 时间:
2015-08-19 16:58:28
阅读次数:
119
二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。图from baike二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值...
分类:
编程语言 时间:
2015-08-16 13:33:59
阅读次数:
150
二叉树的一个重要应用是它们在查找中的使用。使二叉树成为二叉查找树的性质是,对于树中的每个节点X,它的左子树中所有项的值都大于X中的项。注意,这意味着该树所有的元素都可以用某种一致的方式排序。
现在给出通常对二叉查找树进行的操作的简单描述。注意,由于树的递归定义,通常是递归地编写这些操作的例程。因为二叉查找树的平均深度是O(logN),所以一般不必担心栈空间耗尽。
二叉查找树要求所有的项都能够排...
分类:
编程语言 时间:
2015-08-14 22:49:30
阅读次数:
156
基本结构
常用接口
查找元素
计算节点个树
插入更新节点
最大节点与最小节点
查找排名为n的节点
查找键值为k的节点排名
近似节点
查找指定范围内的键值
删除最大最小节点
删除指定节点
二叉搜索树融合了二分查找的高效简洁以及链式数据结构删除元素的优雅。这样一个优秀的数据结构,使用的频率很高。如常见的LRU缓存淘汰算法等, 几乎任何可以想到的查找算法都可以用它来替换。日常工程代码中一般对效率不高,...
分类:
编程语言 时间:
2015-08-14 17:15:10
阅读次数:
172
Treap是一种平衡二叉树,同时也是一个堆。它既具有二叉查找树的性质,也具有堆的性质。在对数据的查找、插入、删除、求第k大等操作上具有期望O(log2n)的复杂度。Treap可以通过节点的旋转来实现其维持平衡的操作,详见旋转式Treap. 而旋转式Treap在对区间数据的操作上无能为力,这就需要非旋...
分类:
其他好文 时间:
2015-08-12 23:15:24
阅读次数:
294
题目Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.思路这一次说的是一个普通的二叉树,给出两个节点,求他们的最低公共父节点。
回想一下,当这棵二叉树是二分查找树的时候的解决方案:
二分查找树解法:http://blog.csdn.net/langduhualangd...
分类:
其他好文 时间:
2015-08-11 21:26:38
阅读次数:
114
Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
解题思路:
题意为构建有序数组的二分查找树。比较简单,用递归方法即可,中间的元素作为根节点,前半部分作为左孩...
分类:
其他好文 时间:
2015-08-11 18:58:16
阅读次数:
214