美文网首页
mooc二叉查找树

mooc二叉查找树

作者: 有苦向瓜诉说 | 来源:发表于2017-03-26 11:16 被阅读0次

<a href='http://blog.csdn.net/wanmeiwushang/article/details/51921821'>参考博客链接</a>

自己写的代码:

 BinTree Insert( BinTree BST, ElementType X )
    {
        if(!BST){
            BST=(BinTree)malloc(sizeof(struct TNode));
            BST->Data=X;
            BST->Left=BST->Right=NULL;
            return BST;
        }
        if(X<BST->Data){
            BST->Left=Insert(BST->Left,X);
        }
        else if(X>BST->Data){
            BST->Right=Insert(BST->Right,X);
        }
        return BST; 
    }
    BinTree Delete( BinTree BST, ElementType X )
    {
        Position Tmp;
        if(!BST){
            printf("Not Found\n");
            return BST;
        }
        if(X<BST->Data) BST->Left=Delete(BST->Left,X);
        else if(X>BST->Data) BST->Right=Delete(BST->Right,X);
        else{
            if(BST->Left&&BST->Right){
                Tmp=BST->Right;
                while(Tmp->Left){
                    Tmp=Tmp->Left;
                }
                BST->Data=Tmp->Data;
                BST->Right=Delete(BST->Right,Tmp->Data);
            }
            else{
                Tmp=BST;
                if(!BST->Left){
                    BST=BST->Right;
                }
                else if(!BST->Right){
                    BST=BST->Left;
                }
                free(Tmp);
            }
        }
        return BST;
    }
    Position Find( BinTree BST, ElementType X ) // 用递归比较好用
    {
        if(!BST) return NULL;
        if(X==BST->Data) return BST;
        else if(X>BST->Data) return Find(BST->Right,X);
        else if(X<BST->Data) return Find(BST->Left,X);
    }
    Position FindMin( BinTree BST )
    {
        if(!BST) return NULL;
        while(BST->Left){
            BST=BST->Left;
        }
        return BST;
    }
    Position FindMax( BinTree BST )
    {
        if(!BST) return NULL;
        while(BST->Right){
            BST=BST->Right;
        }
        return BST;
    }

相关文章

  • mooc二叉查找树

    参考博客链接 自己写的代码:

  • 极客时间数据结构与算法之美笔记25~26

    二叉树到二叉查找树,是为了查找数据的效率接近logN。 二叉查找树到平衡二叉查找树,是为了防止二叉查找树沦为链表。...

  • 二叉查找树

    1)二叉查找树是什么?2)二叉查找树的插入、删除、查找?3)Go代码实现 一、二叉查找树是什么?二叉查找树(BST...

  • 红黑树

    红黑树的本质就是一棵二叉查找树,所以先从二叉查找树来了解起。 二叉查找树 二叉查找树又称有序二叉树,具有以下特性:...

  • 二叉查找树

    二叉查找树,又称二叉搜索树 二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空树具有如下性质: ...

  • 99-数据结构和算法

    难点:二叉树的遍历 红黑树 图的遍历 二叉查找树二叉查找树(binary search tree),二叉查找树在二...

  • 11-二叉查找树

    二叉查找树 1.什么是二叉查找树? 二叉查找树是一种支持数据动态的插入,删除,查找的数据结构。 2.二叉查找树的设...

  • 17张图带你解析红黑树的原理!保证你能看懂!

    二叉查找树 由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。 二叉查找树(Bin...

  • 二叉树 堆 2019-04-17

    二叉树 实现一个二叉查找树,并且支持插入、删除、查找操作 实现查找二叉查找树中某个节点的后继、前驱节点 实现二叉树...

  • 6. 二叉树创建-查找

    1. 递归方式实现二叉树的构建2. 树、二叉树、二叉查找树3. 二叉树排序树的理解4. 二叉查找树5. 二叉树的查找

网友评论

      本文标题:mooc二叉查找树

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