二分查找树(也叫二叉查找树、二叉排序树)的提出是为了提供查找效率,之所以称为二分查找树,因为该二叉树对应着二分查找算法,查找平均的时间复杂度为o(logn),所以该数据结构的提出是为了提高查找效率。...
分类:
其他好文 时间:
2014-07-03 15:43:16
阅读次数:
286
如果说数组(Array)是以线性的方式存储数据,那么可以将二叉树(Binary Tree)想象成以非线性二维的方式存储数据。二叉查找树(BST : Binary Search Tree)规定了树节点排列的一些规则,以保证它的查找时间要低于数组的线性查找时间。BST 算法查找时间依赖于树的拓扑结构,最...
分类:
其他好文 时间:
2014-07-03 12:14:51
阅读次数:
253
二叉查找树C语言实现
1. 二叉查找树的定义:
左子树不为空的时候,左子树的结点值小于根节点,右子树不为空时,右子树的结点值大于根节点,左右子树分别为二叉查找树
2. 二叉查找树的最左边的结点即为最小值,要查找最小值,只需遍历左子树的结点直到为空为止,同理,最右边的结点结尾最大值,要查找最大值,只需遍历右子树的结点直到为空为止。二叉查找树的插入查找和删除都是通过递归的方式...
分类:
编程语言 时间:
2014-07-01 07:33:16
阅读次数:
293
二叉查找树C语言实现
1. 二叉查找树的定义:
左子树不为空的时候,左子树的结点值小于根节点,右子树不为空时,右子树的结点值大于根节点,左右子树分别为二叉查找树
2. 二叉查找树的最左边的结点即为最小值,要查找最小值,只需遍历左子树的结点直到为空为止,同理,最右边的结点结尾最大值,要查找最大值,只需遍历右子树的结点直到为空为止。二叉查找树的插入查找和删除都是通过递归的方式...
分类:
编程语言 时间:
2014-06-30 19:34:32
阅读次数:
246
实现持久动态集合的方式。算法导论上面的问题。代码完全是自己写的。...
分类:
其他好文 时间:
2014-06-30 07:55:42
阅读次数:
156
1. 二叉查找树的定义:
左子树不为空的时候,左子树的结点值小于根节点,右子树不为空时,右子树的结点值大于根节点,左右子树分别为二叉查找树
2. 二叉查找树的最左边的结点即为最小值,要查找最小值,只需遍历左子树的结点直到为空为止,同理,最右边的结点结尾最大值,要查找最大值,只需遍历右子树的结点直到为空为止。二叉查找树的插入查找和删除都是通过递归的方式来实现的,删除一个结点的时候,先找到这个结点...
分类:
编程语言 时间:
2014-06-29 22:08:33
阅读次数:
316
优先队列(priority queue)是允许至少两种操作的数据结构:Insert及DeleteMin(删除最小者)。相当于队列中的Enqueue、Dequeue操作。优先队列可以用链表、二叉查找树、二叉堆等实现。二叉堆1. 结构性质堆(heap)是一棵完全被填满的二叉树,有可能的例外是在底层,底层...
分类:
其他好文 时间:
2014-06-26 22:16:43
阅读次数:
327
-- author : coder_zhang-- date : 2014-6-25root = nilfunction insert_node(number) if root == nil then root = {value = number, left = nil, ...
分类:
其他好文 时间:
2014-06-26 16:51:36
阅读次数:
170
#include#include "fatal.h"struct TreeNode;typedef struct TreeNode *Position;typedef struct TreeNode *SearchTree;typedef int ElementType;SearchTree Mak...
分类:
编程语言 时间:
2014-06-25 12:53:17
阅读次数:
334
红黑树
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
什么是红黑树呢?顾名思义,跟枣树类似,红黑树是一种叶子是黑色果子是红色的树。。。
当然,这个是我说的。。。
《算法导论》上可不是这么说的:
如果一个二叉查找树满足下面的红黑性质,那么则为一个红黑树。
1)每个节点或是红的,或者是黑的。
2)每个叶子节点...
分类:
其他好文 时间:
2014-06-24 20:41:40
阅读次数:
248