题解 | #二叉排序树#

二叉排序树

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

#include<iostream>

using namespace std;

typedef struct node {
    int data;
    struct node* lchild;
    struct node* rchild;
}* BiTree, node;

void firstSearch(node* p);

int main() {
    int n;
    cin >> n;

    int* A = new int[n];
    for (int i = 0; i < n; i++)cin >> A[i];

    node* T = new node;
    if (n > 0) {
        T->data = A[0];
        T->lchild = NULL;
        T->rchild = NULL;
        cout << "-1" << endl;
    }

    for (int i = 1; i < n; i++) {
        node* p;
        node* q;
        q = T;

        while (q != NULL) {
            p = q;
            if (A[i] <= q->data)q = p->lchild;
            else q = p->rchild;
        }

        node* r = new node;
        r->data = A[i];
        r->lchild = NULL;
        r->rchild = NULL;

        if (A[i] <= p->data && p->lchild == NULL) p->lchild = r;
        else if (A[i] > p->data && p->rchild == NULL) p->rchild = r;

        cout << p->data << endl;
    }

    return 0;
}

全部评论

相关推荐

争当牛马还争不上
码农索隆:1.把简历改哈 2.猛投,狠投 3.把基础打牢 这样你在有机会的时候,才能抓住
点赞 评论 收藏
分享
龙珠传说:nb,公务员解约不需要支付违约金吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务