zoukankan      html  css  js  c++  java
  • 二叉树

    建立空树

    void MakeEmpty(SearchTree T) {
        if ( T != NULL) {
            MakeEmpty(T->Left);
            MakeEmpty(T->Right);
            free(T);
        }
    }

    查找

    Position Find(ElementType X, SearchTree T) {
        if (T == NULL) 
            return NULL;
        if (X < T->Element)
            return Find(X, T->Left);
        else if (X > T->Element)
            return Find(x, T->Right);
        else
            return T;
    }

    最小值

    Position FindMin(SearchTree T) {
        if (T == NULL) {
            return NULL;
        }
        else if (T->Left == NULL) {
            return T;
        }
        else
            return FindMin(T-Left);
    }

    插入

    SearchTree Insert(ElementType X, SearchTree T) {
        if (T == NULL) {
            T == malloc(sizeof(struct TreeNode));
            if (T == NULL) {
                Error("out of space");
            }
            else {
                T->Element = X;
                T->Left = T-Right = NULL;
            }
        }
        else if (X < T->Element) {
            T->Left = Insert(X, T->Left);
        }
        else 
            T-Right = Insert(X, T->Right);
    
        return T;
    }

    删除

    SearchTree DeleteMin(ElementType X, SearchTree T) {
        Position TmpCell;
    
        if (T == NULL) {
            Error("Not found");
        }
        else if (X < T->Element)
            T->Left = Delete(X, T->Left);
        else if (X > T->Element)
            T-Right = Delete(X, T->Right);
        else if (T->Left && T->Right) {
            TmpCell = FindMin(T-Right);
            T->Element = TmpCell->Element;
            T->Right = Delete(T->Element, T->Right);
        }
        else {
            TmpCell = T;
            if (T->Left == NULL)
                T = T->Right;
            else if (R->Right == NULL)
                T = T->Left;
            free(TmpCell);
        }
        return T;
    }
  • 相关阅读:
    解决Docker安装慢
    Spring Boot源码分析-启动过程
    Ubuntu安装Docker
    Jenkins搭建
    Hexo搭建静态博客站点
    FactoryBean简介以及Mybatis-Spring应用
    ArrayList源码分析
    Spring AOP-用代理代替繁琐逻辑
    Spring Validation-用注解代替代码参数校验
    Netty学习(4):NIO网络编程
  • 原文地址:https://www.cnblogs.com/m2492565210/p/7258739.html
Copyright © 2011-2022 走看看