二叉树的遍历
前序遍历
#include<bits/stdc++.h>
using namespace std;
int n;
struct s
{
int l,r,d;
}a[10005];
void f(int t)//前序
{
if(t==0)return;
cout<<t<<' ';
f(a[t].l);
f(a[t].r);
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i].d>>a[i].l>>a[i].r;
f(a[1].d);
return 0;
}
中序遍历
#include<bits/stdc++.h>
using namespace std;
int n;
struct s
{
int l,r,d;
}a[10005];
void f(int t)//中序
{
if(t==0)return;
f(a[t].l);
cout<<t<<' ';
f(a[t].r);
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i].d>>a[i].l>>a[i].r;
f(a[1].d);
return 0;
}
后序遍历
#include<bits/stdc++.h>
using namespace std;
int n;
struct s
{
int l,r,d;
}a[10005];
void f(int t)//后序
{
if(t==0)return;
f(a[t].l);
f(a[t].r);
cout<<t<<' ';
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i].d>>a[i].l>>a[i].r;
f(a[1].d);
return 0;
}
标签:std,10005,遍历,return,struct,int
From: https://www.cnblogs.com/RTER/p/17988071