cxfans
9/3/2019 - 7:23 AM

二叉搜索树 #Algorithm

#include <stdlib.h>

#define ElemType int

typedef struct BSTNode {
    ElemType data;
    struct BSTNode *lchild, *rchild;
} BSTNode, *BST;

BST Search(BST r, ElemType key, BST p) {
    p = NULL;
    while (r && r->data != key) {
        p = r;
        if (r->data < key) {
            r = r->lchild;
        } else { r = r->rchild; }
    }
    return p;
}

BST SearchRecur(BST r, ElemType key) {
    if (!r) return NULL;
    if (r->data == key) return r;
    if (r->data < key) return SearchRecur(r->lchild, key);
    else return SearchRecur(r->rchild, key);
}