llllmz

导航

KY207 二叉排序树C++

考二叉搜索树的插入。

#include<iostream>
using namespace std;

struct node{
    int data;
    struct node* left;
    struct node* right;
};
typedef struct node tree;

int main(){
    int n;
    while(cin >> n){
        tree* root=NULL;
        while(n!=0){
            int i ;
            cin >> i;
            if(!root){
                cout << -1 <<'\n';
                tree* tem=new tree ;
                root=tem;
                root->data=i;
                root->left=NULL;
                root->right=NULL;
            }else{
                tree* pre=root;
                tree* now=root;
                int tag=0;
                while(now){
                    pre=now;
                    if(i>now->data){
                        now=now->right;
                        tag=1;
                    }else if(i<now->data){
                        now=now->left;
                        tag=0;
                    }
                }
                tree* tem= new tree ;
                tem->data=i;
                tem->left=NULL;
                tem->right=NULL;
                if(tag==0){
                    pre->left=tem;
                }else{
                    pre->right=tem;
                }
                cout << pre->data <<'\n';
            }
            n--;
        }
    }
    return 0;
}

结果:

posted on 2024-01-24 20:54  神奇的萝卜丝  阅读(15)  评论(0)    收藏  举报