美文网首页
树的应用—二叉排序树

树的应用—二叉排序树

作者: 梦在原点 | 来源:发表于2019-08-26 17:09 被阅读0次

二叉排序树可以为空树,也可以为非空树,为非空树时有以下特点

  • 若左子树非空,则左子树上所有结点值均小于根结点的值
  • 若右子树非空,则右子树上所有结点值均大于根结点的值
    注意这里没有等于,也就是说二叉排序树中默认是没有相同值结点的
  • 左,右子树本身也是一颗二叉排序树

二叉排序树进行中序遍历后,序列即为一个递增的有序序列


二叉排序树

查找操作
二叉树非空时,查找根结点,若相等则查找成功;
若不等,则小于根结点查左子树,大于查右子树
当查找到叶子结点还未找到,查找失败
代码实现,看懂就行

查找操作
插入操作
若二叉排序树为空时,直接插入结点
若二叉排序树非空时,值小于根结点值时,插入左子树;大于插入右子树,等于不能插入。(使用递归来实现)
int BST_Insert(BiTree &T,KeyType k){
    if (T == NULL){
        T = (BiTree)malloc(sizeof(BSTNode));
        T->key = k;
        T->lchild = T->rchild = NULL;
        return 1;
    }
    else if (k == T->key){
        return 0;
    }
    else if (k < T-key){
        return BSTNode(T->lchild,k);
    }
    else if (k > T-key){
        return BSTNode(T->rchild,k);
    }
}

构造二叉排序树
构造的过程是一个动态的过程,不断的调用插入函数来进行构造
读入一个元素并建立结点,若二叉树为空将其作为根结点;
若二叉排序树非空,小于插左子树,大于插右子树。

void Create_BST(BiTree &T,keyType str[],int n){
//str存放插入的元素,n为插入的个数
     T = NULL;
     int i = 0;
     while(i<n){
        BST_Insert(T,str[i]);
        i++;
     }
}

删除

  • 若删除结点为叶子结点,则直接删除
  • 若删除结点z有一颗子树y,那么选取这棵子树y代替该结点z的位置
  • 若删除结点z有两颗子树,直接让z的中序遍历直接后继x,直接代替z的位置,然后执行删除x的操作,以此类推。最终会变成上面的两种情况。

删除一个结点,然后再插入该结点,所得到的二叉排序树可能会不一样

相关文章

  • 树的应用—二叉排序树

    二叉排序树可以为空树,也可以为非空树,为非空树时有以下特点 若左子树非空,则左子树上所有结点值均小于根结点的值 若...

  • 数据结构学习第四弹 二叉排序树

    二叉排序树又称为二叉搜索树或二叉查找树,这是一种插入、删除和检索记录效率都很高的树结构 二叉排序树概念 二叉排序树...

  • 二叉排序树

    1、二叉排序树定义 二叉排序树也叫二叉搜索树、二叉查找树。二叉排序树树是一颗它的左子树上的节点都小于根节点,右子树...

  • 详解Java二叉排序树

    姓名: 李小娜 [嵌牛导读] :这篇文章主要介绍了Java二叉排序树,包括二叉排序树的定义、二叉排序树的性质、二叉...

  • 数据结构05-二叉排序树

    数据结构05-二叉排序树 一、二叉排序树的介绍 二叉排序树 或者是一颗空树,或者是一颗具有如下性质的树: 若左子...

  • Java数据结构:二叉排序树(BST)

    一、基本介绍 二叉排序树 BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一...

  • Binary Search Tree

    如果二叉排序树是平衡的,则n个节点的二叉排序树的高度为 ,其查找效率为 ,近似于折半查找。如果二叉排序树完全不平衡...

  • 二叉搜索树(BST)

    构造一棵二叉排序树的目的,其实并不是为了排序,而是为了提高查找的效率。 那么什么是二叉排序树呢?二叉排序树具有以下...

  • 红黑树

    二叉排序树 非空二叉排序树具有如下特点: 二叉排序树中,如果其根结点有左子树,那么左子树上所有结点的值都小于根结点...

  • 【数据结构】二叉排序树(Binary Sort Tree)(建立

    二叉排序树定义 二叉排序树(Binary Sort Tree),又称二叉查找树。它是一颗空树,或者具有下列性质: ...

网友评论

      本文标题:树的应用—二叉排序树

      本文链接:https://www.haomeiwen.com/subject/mxsdectx.html