2014.06.15 16:22简介: AVL树是一种高度平衡的二叉搜索树,其命名源自于联合发明算法的三位科学家的名字的首字母。此处“平衡”的定义是:任意节点的左右子树的高度相差不超过1。有了这个平衡的性质,使得AVL树的高度H总是接近log(N),因此各种增删改查的操作的复杂度能够保证在对数级别....
分类:
编程语言 时间:
2014-06-18 23:42:43
阅读次数:
734
2014.06.15 20:42简介: 伸展树是一种介于普通二叉搜索树和AVL树之间的,比较平衡的一种二叉搜索树。它不像AVL树那样总是高度平衡,虽然单次操作的就可能耗费O(n)时间,但连续M次基本操作的时间复杂度能做到O(M * log(N)),M当然不能和1太接近。这种复杂度叫做均摊复杂度,英....
分类:
编程语言 时间:
2014-06-17 00:21:20
阅读次数:
363
自己实现了一下二叉搜索树的数据结构,记录一下:
#include
using namespace std;
struct TreeNode{
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int value) { val=value; left=NULL; right=NULL; }
};
clas...
分类:
编程语言 时间:
2014-06-14 13:36:40
阅读次数:
265
题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。输入:输入可能包含多个测试样例。对于每个测试案例,输入的第一行为一个数n(0data
= m; s->lchild = NULL; s->rchil...
分类:
其他好文 时间:
2014-06-12 20:29:37
阅读次数:
351
二叉搜索树的基本实现。 1 /* 2 Date: 2014-04-29 3 purpose: An
implementation of MAP using binary search tree. 4 */ 5 6 #ifndef
CUSTOMIZED_MAP_H 7 #define CUST...
分类:
其他好文 时间:
2014-06-12 15:59:38
阅读次数:
404
问题:
给定一个有序链表,生成对应的平衡二叉搜索树。
分析
见Convert
Sorted Array to Binary Search Tree
实现:
TreeNode *buildTree(ListNode* head, ListNode *end){
if(head == NULL || head == end)
return NULL;
...
分类:
其他好文 时间:
2014-06-10 07:17:29
阅读次数:
264
题目
Implement int sqrt(int x).
Compute and return the square root of x.
方法一
使用二分查找,注意int的边界问题,使用除法。
public int sqrt(int x) {
if (x <= 1) {
return x;
...
分类:
其他好文 时间:
2014-06-10 06:49:45
阅读次数:
274
1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN)。线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a...
分类:
其他好文 时间:
2014-06-07 16:55:29
阅读次数:
307