题解 | #二叉排序树#
二叉排序树
https://www.nowcoder.com/practice/b42cfd38923c4b72bde19b795e78bcb3
#include <iostream>
using namespace std;
struct node{
int val;
node* right,*left;
node(int x):val(x),left(nullptr),right(nullptr){};
};
void insertnode(node *&a, int x)
{
if(a == nullptr)
{
a = new node(x);
return ;
}
if(x < a->val)
{
insertnode(a->left,x);
}
else if(x > a->val)
{
insertnode(a->right,x);
}
}
void pre(node* tree){
if(tree==nullptr)return;
cout<<tree->val<<" ";
pre(tree->left);
pre(tree->right);
}
void mid(node* tree){
if(tree==nullptr)return;
mid(tree->left);
cout<<tree->val<<" ";
mid(tree->right);
}
void post(node* tree){
if(tree==nullptr)return;
post(tree->left);
post(tree->right);
cout<<tree->val<<" ";
}
int main() {
int a;
while (cin >> a) {
node *tree = nullptr;
int x;
for(int i = 0;i < a; i++)
{
cin>>x;
insertnode(tree,x);
}
pre(tree);
cout<<endl;
mid(tree);
cout<<endl;
post(tree);
cout<<endl;
}
}



腾讯云智研发成长空间 5088人发布