#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
struct node
{
char date;
node *lc,*rc;
};
node *build(char c)
{
node *t=new node;
t->date=c;
t->lc=NULL;
t->rc=NULL;
return t;
}
node* myinsert(node* &root,char c)
{
if(root==NULL){
root=build(c);
return root;
}
if((root->date)>c) return myinsert(root->lc,c);
else return myinsert(root->rc,c);
}
void print(node* t)
{
if(t!=NULL){
cout<<t->date;
print(t->lc);
print(t->rc);
}
}
void myclear(node* &t)
{
if(t!=NULL){
myclear(t->lc);
myclear(t->rc);
}
delete t;
}
int main()
{
string str,p;
while(cin>>str){
if(str=="*"||str=="$"){
node *root=NULL;
for(int i=p.size()-1;i>=0;i--) myinsert(root,p[i]);
print(root);
cout<<endl;
if(str=="$")
break;
myclear(root);
p="";
}
else p+=str;
}
}
POJ 1577 二叉树的建立与遍历
最新推荐文章于 2021-01-07 16:36:08 发布