先贴纯代码,有空再填坑template<classK,classV>
structBSTNode
{
BSTNode(constK&key,constV&value)
:_key(key)
,_value(value)
,_left(NULL)
,_right(NULL)
{}
K_key;
V_value;
BSTNode<K,V>*_left;
BSTNode<K,V>*_right;
};
template<classK,c..
分类:
其他好文 时间:
2016-06-21 11:06:32
阅读次数:
142
/***************************
运行环境http://www.anycodes.cn/zh/
原文件http://www.cnblogs.com/hanxi/archive/2012/08/18/2645929.html
带注释的C++类版本BST二叉搜索树
***************************/
#ifndefBTREE_H_
#defineBTREE_H_
#include<cstdlib>
#includ..
分类:
编程语言 时间:
2016-06-19 18:38:34
阅读次数:
274
关于B树的学习还是需要做点笔记。 B树是为磁盘或者其他直接存取辅助存储设备而设计的一种平衡查找树。B树与红黑树的不同在于,B树可以有很多子女,从几个到几千个。比如一个分支因子为1001,高度为2的B树,他可以存储超过10亿个关键字,尽管如此,因为根节点(只有一个)保留在主存中,故这可书中,寻找某一个 ...
分类:
其他好文 时间:
2016-06-19 17:05:01
阅读次数:
188
二叉搜索树:1.每个节点都有一个关键码(key)作为搜索依据,关键码互不相同。2.左子树的所有关键码都小于根节点的关键码。3.右子树的所有关键码都大于根节点的关键码。4.左右子树都是二叉搜索树。删除key:左为空,右为空,左右都不空1)左为空:cur的右树链到父节点2)右为空..
分类:
其他好文 时间:
2016-06-19 01:23:12
阅读次数:
178
二叉查找树(Binary Search Tree),又被称为二叉搜索树,它是特殊的二叉树,左子树的节点值小于右子树的节点值。 定义二叉查找树 定义二叉树BSTree,它保护了二叉树的根节点BSTNode类型的mRoot,定义内部类BSTNode 包含二叉树的几个基本信息: key——关键字用来对二叉 ...
分类:
编程语言 时间:
2016-06-17 21:09:38
阅读次数:
230
剑指offer第二十七题:二叉搜索树和双向链表 ...
分类:
其他好文 时间:
2016-06-16 21:34:40
阅读次数:
214
性质:左子节点<父节点<右子节点
定义:public class TreeNode {
public int keyValue; //关键字值
public TreeNode leftNode;//左节点
public TreeNode rightNode;//右节点 public TreeNode(){}
public TreeNode(int Key)...
分类:
其他好文 时间:
2016-06-16 14:38:28
阅读次数:
218
【题目】给定一颗二叉搜索树,请找出其中的第k大的结点。 * 例如, 5 * / \ * 3 7 * / \ / \ * 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。 中序遍历:2 3 4 5 6 7 8 ...
分类:
其他好文 时间:
2016-06-16 13:13:23
阅读次数:
145
判断是否是有效的二叉搜索树,即左子树的值小于根结点,右子树的值大于根结点。可以采用递归的方式来完成,递归时如何 传递有效的参数与根结点进行比较,是此题的难点。 1 bool isValidBST(TreeNode *root) 2 { 3 isValidBST(root, INT_MIN, INT_ ...
分类:
其他好文 时间:
2016-06-16 11:40:35
阅读次数:
139
java二叉查找树实现: 二叉查找树,上图:比根节点小者在其左边,比根节点大者在其右边。 抽象数据结构,上代码: 一些基本操作实现: 插入(insert): 依次比较根元素,小者放左边,大者放右边: 查找(get): 查找最大,最小元素: 遍历树(中序遍历): 获取前驱(prev)元素: 主要有两种 ...
分类:
编程语言 时间:
2016-06-16 09:13:50
阅读次数:
250