#include<bits/stdc++.h>
using namespace std;
#define maxn 10010
struct node
{
int data;
int lchild;
int rchild;
}Node[maxn];
int idx=0;
int root = -1;
int newNode(int v)
{
Node[idx].data=v;
Node[idx].lchild = -1;
Node[idx].rchild = -1;
return idx++;
};
void insert(int &root,int upper,int x)
{
if(root == -1)
{
root = newNode(x);
if(idx==0)
{
printf("-1\n");
}
else
{
printf("%d\n",upper);
}
return;
}
if(Node[root].data>x)
{
upper = Node[root].data;
insert(Node[root].lchild,upper,x);
}
else
{
upper = Node[root].data;
insert(Node[root].rchild,upper,x);
}
}
int main()
{
int N;
cin>>N;
for(int i=0;i<N;i++)
{
int temp;
cin>>temp;
insert(root,-1,temp);
}
}
BOJ-130 二叉排序树
最新推荐文章于 2021-03-30 00:52:18 发布
本文详细介绍了一种二叉搜索树的插入操作实现方法。通过使用C++编程语言,我们展示了如何创建节点、插入元素,并在插入过程中维护二叉搜索树的特性。文章通过具体的代码示例解释了插入过程中的递归逻辑,以及如何更新父节点和子节点的关系。
181

被折叠的 条评论
为什么被折叠?



