树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的...
分类:
编程语言 时间:
2015-05-29 17:58:36
阅读次数:
121
一般二叉树的查找是通过遍历整棵二叉树实现,效率较低。二叉查找树是一种特殊的二叉树,可以提高查找的效率。二叉查找树又称为二叉排序树或二叉搜索树。 二叉查找树的定义 二叉排序树(Binary Search Tree)又称二叉排序树(Binary Sort Tree),或者是一颗空二叉树,或者...
分类:
编程语言 时间:
2015-05-28 23:09:56
阅读次数:
204
伸展树
伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它由Daniel Sleator和Robert Tarjan创造,后者对其进行了改进。
假设想要对一个二叉查找树执行一系列的查找操作。为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法,在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。splaytre...
分类:
其他好文 时间:
2015-05-27 01:04:18
阅读次数:
183
这里我们主要讲二叉排序树的操作:什么是二叉排序树?
或者是一棵空树
或者是具有一下性质的二叉树:
a.若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值;
b.若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
c.它的左、右子树也分别为二叉排序树
Tip : 中序(左根右)遍历二叉排序树会得到一个关键字的递增有序序列二叉排序树的操作——查找查找步骤:
若查找的关键字等于...
分类:
其他好文 时间:
2015-05-24 14:20:51
阅读次数:
229
算法:排序和查找(二分查找,归并排序,快速排序),位运算等。查找:顺序查找,哈希查找,二叉排序树查找,哈希表。二分查找可以解决:"旋转数组中的最小数字","数字在排序数组出现的次数"等问题。哈希表:优点:O(1)时间内查找一个元素的效率最高。缺点:需要额外的空间来实现哈希表。二叉排序树查找:对应二查...
分类:
编程语言 时间:
2015-05-18 22:33:39
阅读次数:
280
二叉排序树(二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。)或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根...
分类:
其他好文 时间:
2015-05-17 16:32:27
阅读次数:
130
上篇博客主要讲述了二叉排序树的基本概念和插入删除操作,必须再次说明的是:在一棵高度为h的二叉排序树上,实现动态集合操作查询,插入和删除的运行时间均为O(h)。
可见二叉树的基本操作效率取决于树的形态,当然树的高度越低越好,显然树分布越均匀,高度越低。那么,问题来了?对于给定的关键字序列,如何构造一棵形态匀称的二叉排序树。这种匀称的二叉排序树就称为平衡二叉树。
平衡二叉树定义:平衡二叉树...
分类:
编程语言 时间:
2015-05-15 12:05:53
阅读次数:
184
Binary Search Tree 又叫二叉查找树,二叉排序树这是种什么样的树呢?其实就是根节点的左子树比根节点小 右子树比根节点大 同时 左子树和右子树也是二叉搜索树代码比较简单 基本用递归实现 比较好理解 只有删除带有左右子树的节点时比较难理解方法就是 直接在右子树找一个最小的节点 取代要被删...
分类:
编程语言 时间:
2015-05-14 18:08:35
阅读次数:
142
最近想写一些关于红黑树的博客,既想写的全面,又直观,但是又不知道从哪里入手。斟酌再三,还是从最简单的二叉排序树开始写。
二叉排序树(Binary Sort Tree)又叫二叉查找树。它是一种特殊结构的二叉树。其或为空树,或具备下列性质:
(1)若它的左子树不为空,则左子树上所有结点的值均小于它的根节点的值。
(2)若它的右子树不为空,则左子树上所有结点的值均大于它的根节点的值。
显然,它的...
分类:
编程语言 时间:
2015-05-13 22:00:17
阅读次数:
208
首先定义二叉树的存储结构1 /* 二叉树的二叉链表结点结构定义 */2 typedef char TreeElemType;3 typedef struct tagBiTreeNode {4 TreeElemType data;//结点数据5 struct tagBiTreeNode...
分类:
编程语言 时间:
2015-05-13 18:55:56
阅读次数:
113