二叉排序树的基本操作

二叉排序树定义

typedef struct BTNode {
    int val;
    struct BTNode *lchild;
    struct BTNode *rchild;
} BSTNode, *BiTree;

查找

BTNode *BST_Search(BiTree T, int key, BTNode *p) {
    p = NULL;
    while(key < T->val && key != T->val) {
        p = T;
        if(key < T->val)  T = T->lchild;
        else T = T->rchild;
    }
    return T;
}

插入

int BST_Insert(BiTree &T, int k) {
    if(T == NULL) {                 //原树为空,新插入的记录为根结点
        T = (BiTree)malloc(sizeof(BTNode));
        T->val = k;
        T->lchild = T->rchild = NULL;
        return 1;
    } else if(k == T->val)
        return 0;
    else if(k < T->val)
        return BST_Insert(T->lchild, k);
    else
        return BST_Insert(T->rchild, k);
}

构造

void Create_BST(BiTree &T, int *A, int n) {
    T = NULL;
    for(int i = 0; i < n; i++) {
        BST_Insert(T, A[i]);
    }
}

原文链接: https://www.cnblogs.com/0202zc/p/13236127.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    二叉排序树的基本操作

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/362268

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午2:16
下一篇 2023年3月2日 下午2:17

相关推荐