AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef struct node
{
char data;
struct node *lchild;
struct node *rchild;
}btnode;
char shuru[55];
int cnt;
void juqianxujianshu(btnode *&root)///这个根据递归思想写的建树函数真是太棒了
{
char ch=shuru[cnt];
cnt++;
if(ch==',')
root=NULL;
else
{
root=new btnode;
root->data=ch;
juqianxujianshu(root->lchild);
juqianxujianshu(root->rchild);
}
}
void zhongxu(btnode *p)
{
if(p!=NULL)
{
zhongxu(p->lchild);
cout<<p->data;
zhongxu(p->rchild);
}
}
void houxu(btnode *p)
{
if(p!=NULL)
{
houxu(p->lchild);
houxu(p->rchild);
cout<<p->data;
}
}
int main()
{
while(cin>>shuru)
{
cnt=0;
btnode *root;
juqianxujianshu(root);
zhongxu(root);
cout<<endl;
houxu(root);
cout<<endl;
}
return 0;
}
主要是建树,递归遍历建好的树没啥意思;建树就用学过的递归思想,非常棒!!!