题解 | #二叉排序树#

二叉排序树

https://www.nowcoder.com/practice/30a0153649304645935c949df7599602

#include <iostream>
#include <algorithm>
#include "string"
using namespace std;
const int N=100010;
typedef struct Binary_Node{
    int dad;
    int val;
    struct Binary_Node *lchild;
    struct Binary_Node *rchild;
}*BTree,Binary_Node;
int n;
int a[N];

int BST_insert(BTree &T,int x,int father){
    if(T==NULL){
        T= (BTree)malloc(sizeof(Binary_Node));
        T->dad=father;
        T->val=x;
        T->lchild=T->rchild=NULL;
        return 1;
    } else
    if(x<T->val){
        return BST_insert(T->lchild,x,T->val);
    } else if(x>T->val){
        return BST_insert(T->rchild,x,T->val);
    }
    return 0;
}
BTree BST_search(BTree T,int x){
    while(T!=NULL && x!=T->val){
        if(x<T->val)
            T=T->lchild;
        else
            T=T->rchild;
    }
    return T;
}

int main() {
    cin >>n;
    BTree  T=NULL;
    for(int i=0;i<n;i++){
        int x;
        scanf("%d",&x);
        a[i] =x;
        BST_insert(T,x,-1);
    }
    for(int i=0;i<n;i++){
        BTree idx=BST_search(T,a[i]);
        printf("%d\n",idx->dad);
    }
    return 0;
}

全部评论

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
HNU_fsq:建议直接出国,这简历太6了。自愧不如
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务