悬0关,手写树,先序正确,中序和后序错误
#include<bits/stdc++.h>
using namespace std;
const int N=105;
struct fun_bitree_struct{
int fun_bitree_me,fun_bitree_lchild,fun_bitree_rchild;
}fun_bitree[N];
string fun_bitree_str;
int fun_bitree_node,fun_bitree_father,fun_bitree_l,fun_bitree_r,fun_bitree_x;
void fun_bitree_child(int father,int l,int r){
fun_bitree[father].fun_bitree_lchild=l;
fun_bitree[father].fun_bitree_rchild=r;
fun_bitree[father].fun_bitree_me=father;
return ;
}
void fun_bitree_first(int father){
cout<<fun_bitree[father].fun_bitree_me<<" ";
if(fun_bitree[father].fun_bitree_lchild!=-1){
fun_bitree_first(fun_bitree[father].fun_bitree_lchild);
}
if(fun_bitree[father].fun_bitree_rchild!=-1){
fun_bitree_first(fun_bitree[father].fun_bitree_rchild);
}
return ;
}
void fun_bitree_mid(int father){
if(fun_bitree[father].fun_bitree_lchild!=-1){
fun_bitree_first(fun_bitree[father].fun_bitree_lchild);
}
cout<<fun_bitree[father].fun_bitree_me<<" ";
if(fun_bitree[father].fun_bitree_rchild!=-1){
fun_bitree_first(fun_bitree[father].fun_bitree_rchild);
}
return ;
}
void fun_bitree_last(int father){
if(fun_bitree[father].fun_bitree_lchild!=-1){
fun_bitree_first(fun_bitree[father].fun_bitree_lchild);
}
if(fun_bitree[father].fun_bitree_rchild!=-1){
fun_bitree_first(fun_bitree[father].fun_bitree_rchild);
}
cout<<fun_bitree[father].fun_bitree_me<<" ";
return ;
}
int main(){
cin>>fun_bitree_x;
while(fun_bitree_x--){
cin>>fun_bitree_father;
while(fun_bitree_father!=-1){
cin>>fun_bitree_l>>fun_bitree_r;
fun_bitree_child(fun_bitree_father,fun_bitree_l,fun_bitree_r);
cin>>fun_bitree_father;
}
cin>>fun_bitree_node;
while(fun_bitree_node--){
cin>>fun_bitree_str;
if(fun_bitree_str=="first"){
fun_bitree_first(1);
}
else if(fun_bitree_str=="mid"){
fun_bitree_mid(1);
}
else if(fun_bitree_str=="last"){
fun_bitree_last(1);
}
}
}
return 0;
}