#include <bits/stdc++.h>
using namespace std;
typedef struct TNode{
int data;
TNode *left, *right;
}Tree;
int insert_node(Tree *&t, int data){
int res = -1;
if(t == NULL){
// create new node
Tree *temp = new Tree();
temp->left = temp->right = NULL;
temp->data = data;
t = temp;
return res;
}
res = t->data;
if(t->data > data){
if(t->left == NULL){
// cteate node
Tree *temp = new Tree();
temp->left = temp->right = NULL;
temp->data = data;
t->left = temp;
}else{
// go to left node
res = insert_node(t->left,data);
}
}else{
if(t->right == NULL){
Tree *temp = new Tree();
temp->left = temp->right = NULL;
temp->data = data;
t->right = temp;
}else{
res = insert_node(t->right,data);
}
}
return res;
}
void Traversal(Tree *t){
if(t == NULL)
return ;
Traversal(t->left);
cout << t->data << " ";
Traversal(t->right);
}
int main(){
int n;
cin >> n;
Tree *t = NULL;
while(n--){
int x;
cin >> x;
cout << insert_node(t, x) << endl;
}
return 0;
}
北邮OJ 130.二叉排序树
最新推荐文章于 2023-01-13 10:45:00 发布