#include<bits/stdc++.h>
using namespace std;
struct node{
int v;
int l,r;
}t[1000010];
void buildtree()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int l,r;
cin>>l>>r;
t[i].v=i;
if(l!=0)
t[i].l=l;
if(r!=0)
t[i].r=r;
}
}
void preorder(int f)
{
if(f!=0)
{
printf("%d ",t[f].v);
preorder(t[f].l);
preorder(t[f].r);
}
}
void inorder(int f)
{ if(f!=0)
{
inorder(t[f].l);
printf("%d ",t[f].v);
inorder(t[f].r);
}
}
void postorder(int f)
{
if(f!=0)
{
postorder(t[f].l);
postorder(t[f].r);
printf("%d ",t[f].v);
}
}
int main()
{
buildtree();
preorder(1);
cout<<endl;
inorder(1);
cout<<endl;
postorder(1);
}
B3642 二叉树的遍历
最新推荐文章于 2024-06-13 20:44:05 发布