二叉搜索树定义:二叉搜索树是一棵二叉树来组织的。二叉搜索中的关键字总是以满足二叉树搜索性质的方式来存储的。设x是二叉树中的一个节点。如果y是x左子树中的一个结点,那么y.key<=x.key。如果y是x右子树中的一个结点,那么y.key>=x.key。算法的分析:假如我们选择中序..
分类:
其他好文 时间:
2015-07-24 01:39:57
阅读次数:
122
听人说了一个词儿,叫作“Comfirtable Zone”,中文是“舒适区”。这个词儿让我瞬间联系到程序员的能力边界问题,我画了能力拓展模型图……...
分类:
其他好文 时间:
2015-07-20 08:01:33
阅读次数:
161
前言前两篇文章二叉树和二叉搜索树中已经涉及到了二叉树的三种遍历。递归写法,仅仅要理解思想,几行代码。但是非递归写法却非常不easy。这里特地总结下,透彻解析它们的非递归写法。当中。中序遍历的非递归写法最简单,后序遍历最难。我们的讨论基础是这种: //Binary Tree Nodetypedef s...
分类:
其他好文 时间:
2015-07-19 21:25:45
阅读次数:
167
二叉查找树(Binary Search Tree,BST),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。...
分类:
编程语言 时间:
2015-07-19 19:27:00
阅读次数:
154
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
简单而言就是
左边的小于中间
中间的小于右边
首先建立几个数据变量
#define TYPE i...
分类:
其他好文 时间:
2015-07-16 16:45:11
阅读次数:
96
一直对于二叉搜索树(又叫二叉排序树,也叫二叉查找树),没有很好的理解,决定花点时间来学习and总结。。
二叉搜索树也是二叉树的一种。(就像堆也就二叉树的一种一样。。。)
只不过,二叉搜索树也是有其他要求:对于所有的子树,其根节点的值大于左子树上的所有结点的值,而小于右子树上所有结点的值的值。。
对于错误的理解:对于所有的结点,要大于其左结点,小于其右结点。。(PS:这种理解是错误的,...
分类:
其他好文 时间:
2015-07-16 00:55:13
阅读次数:
114
1. 问题描述 给定一棵二叉搜索树(BST),查找两个节点的最短公共祖先节点。
2. 方法与思路 这是一个简化的LCA问题,由于是二叉搜索树,树的本身就有一定节点,左儿子节点的值小于父节点值,父节点值小于右儿子节点的值。这样我们可以递归查找就可以了,如果当前节点值大于给定两个节点的值就去它的左子树查找,如果当前节点的值小于给定两个节点的值,就去它的右子树查找,否则返回该节点。
/**...
分类:
其他好文 时间:
2015-07-14 13:36:43
阅读次数:
74
二叉搜索树:对于任意一个节点x,其左子树中的关键字均不大于x.key,其右子树均不小于x.key。概念性的东西就不多说了,,下面直接用C语言实现,,用注释说明问题会更清晰一些 未完待续……
分类:
其他好文 时间:
2015-07-13 00:47:08
阅读次数:
113
1 template 2 class BinarySearchTree 3 { 4 public: 5 BinarySearchTree():root(NULL){} 6 BinarySearchTree(const BinarySearchTr...
分类:
编程语言 时间:
2015-07-12 20:13:03
阅读次数:
216
与链表不同,树是一种非线性的数据结构。树中最常用的是二叉树,二叉树限制了子树的数量,也就是每个结点的子树至多2个,并且这两个子树是有顺序的。而二叉搜索树(二叉查找树,二叉排序树)是指根节点的关键字大于左子树的,而小于右子树,并且,左右子树也是一颗二叉搜索树。也就是说中序遍历一颗二叉搜索树,它的输.....
分类:
编程语言 时间:
2015-07-12 18:49:50
阅读次数:
238