二叉查找树-总结

原创 2015年07月10日 15:56:35
定义:
二叉排序树或者是一棵空树,或者是具有下列性质的二叉树
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
(4)没有键值相等的节点。
查找:
查找对于二叉树查找树来说很简单这也是二叉查找树的优势所在,和目标值一样查找成功,比当前节点大往右子树查找,比当前节点小往左子树查找,递归下去即可。算法复杂厚度为O(logn)。
插入:
二叉查找树插入都是叶子节点插入,首先第一步是查找,从根节点起,如果根节点为NULL,直接插入根节点即可,如果插入数据比插入节点大,往右子树插入,如果比插入节点小插入左子树,如果和插入节点相等,则在节点计数器加1。算法复杂度O(logn)。
查找树的建立:
建立就相当于把一个一个数,往一课树种做插入动作,算法复杂度O(nlogn)。
删除:
1、二叉查找树对的删除相对复杂点。如果删除节点没有左子树或者没有右子树那么只要把左儿子或者右儿子替换被删节点即可。
2、如果既没有左儿子也没有右儿子,直接删除即可,让父亲把指向儿子的指针置为空。
3、如果既有左儿子也有右儿子,找到右子树中的最小值替换被删除节点,同时删除改最小值(递归)算法复杂度为O(logn)

二叉排序树的创建(结点的插入,删除等操作)

二叉排序树的理论看课本 代码如下: BSTree.h struct BSTreeNode; typedef struct BSTreeNode *ptrtreenode; void Make...
  • jw903
  • jw903
  • 2014年05月05日 22:49
  • 1273

Java实现二叉排序树的插入、查找、删除

import java.util.Random; /** * 二叉排序树(又称二叉查找树) * (1)可以是一颗空树 * (2)若左子树不空,则左子树上所有的结点的值均小于她的根节点...
  • u010829118
  • u010829118
  • 2014年08月17日 08:48
  • 3972

【数据结构树表的查找】二叉排序树详解和代码(生成、插入、查找、最大值、最小值、删除、中序遍历、销毁)

二叉排序树(简称BST)又称二叉查找(搜索)树,其定义为:二叉排序树或者是空树,或者是满足如下性质的二叉树:       (1)若它的左子树非空,则左子树上所有记录的值均小于根记录的值;       ...
  • zhoubin1992
  • zhoubin1992
  • 2015年04月27日 20:16
  • 3026

二叉查找树C++实现

  • 2013年11月07日 16:54
  • 4KB
  • 下载

课程设计——二叉查找树

  • 2014年03月13日 16:08
  • 116KB
  • 下载

二叉查找树

  • 2014年09月15日 23:27
  • 3KB
  • 下载

Objective C二叉查找树

  • 2013年12月25日 14:55
  • 27KB
  • 下载

C++二叉查找树的实现

  • 2010年07月20日 21:16
  • 1KB
  • 下载

二叉查找树C#描述版

  • 2013年11月01日 17:42
  • 31KB
  • 下载

二叉查找树BST

  • 2015年12月13日 15:34
  • 357KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二叉查找树-总结
举报原因:
原因补充:

(最多只允许输入30个字)