题解
2023-08-18 11:29:36
发布于:广东
22阅读
0回复
0点赞
还搞不清前序遍历、中序遍历和后序遍历?
叫你一条口诀:
前序遍历很简单,先输出来后递归
中序遍历也不难,输出只要第二站
后序遍历更简单,输出放到最后来
只要口诀背下来,偏题难题都不怕!
#include <bits/stdc++.h>
using namespace std;
struct Node
{
int left=0,right=0;
} nodes[110];
void preord(int x)
{
if(x==0) return;
cout<<x<<" ";
preord(nodes[x].left);
preord(nodes[x].right);
}
void inord(int x)
{
if(x==0) return;
inord(nodes[x].left);
cout<<x<<" ";
inord(nodes[x].right);
}
void postord(int x)
{
if(x==0) return;
postord(nodes[x].left);
postord(nodes[x].right);
cout<<x<<" ";
}
int main()
{
int n,dad,son1,son2;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>dad>>son1>>son2;
nodes[dad].left = son1;
nodes[dad].right = son2;
}
preord(1);
cout<<'\n';
inord(1);
cout<<'\n';
postord(1);
return 0;
}
全部评论 1
666
2023-09-09 来自 广东
0
有帮助,赞一个