题解 | #二叉排序树#

二叉排序树

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;
}

全部评论

相关推荐

点赞 评论 收藏
分享
10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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