码迷,mamicode.com
首页 > 编程语言 > 详细

二叉排序树

时间:2016-04-18 11:30:58      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

  当用线性表作为表的组织形式时,可以有三种查找法。其中以二分查找效率最高。但由于二分查找要求表中

节点按关键字有序,且不能用链表作存储结构,因此,当表的插入或删除操作频繁时,为维护表的有序性,

势必要移动表中很多节点。这时由移动节点引起的额外时间开销,就会抵消二分查找的优点。也就是说,

二分查找只适用于静态查找表。

  若要对动态查找表进行高效率的查找,可采用下面介绍的几种特殊的二叉树或树作为表的组织形式。不妨将它们统称为树表。

 

二叉排序树

1、二叉排序树的定义
 
 
 二叉排序树(Binary Sort Tree)又称二叉查找(搜索)树(Binary Search Tree)。其定义为:二叉排序树或者是空树,或者是满足如下性质的二叉树:
①若它的左子树非空,则左子树上所有结点的值均小于根结点的值;
②若它的右子树非空,则右子树上所有结点的值均大于根结点的值;
③左、右子树本身又各是一棵二叉排序树。
  上述性质简称二叉排序树性质(BST性质),故二叉排序树实际上是满足BST性质的二叉树。

2、二叉排序树的特点
  
由BST性质可得:
  (1) 二叉排序树中任一结点x,其左(右)子树中任一结点y(若存在)的关键字必小(大)于x的关键字。
  (2) 二叉排序树中,各结点关键字是惟一的。
  注意:
  实际应用中,不能保证被查找的数据集中各元素的关键字互不相同,所以可将二叉排序树定义中BST性质(1)里的"小于"改为"大于等于",或将BST性质(2)里的"大于"改为"小于等于",甚至可同时修改这两个性质。
  (3) 按中序遍历该树所得到的中序序列是一个递增有序序列。

 


 

 

二叉排序树

标签:

原文地址:http://www.cnblogs.com/xh0102/p/5403587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!