Time Limit: 1000MS Memory limit: 65536K
题目描述
输入
输出
示例输入
1 2 2 1 20
示例输出
2 1 20
提示
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
struct node
{
int data;
struct node *lchild,*rchild;
};
struct node *create(struct node *root,int e)
{
if(root==NULL)
{
root=new node;
root->data=e;
root->lchild=root->rchild=NULL;
}
else
{
if(e>root->data)
root->rchild=create(root->rchild,e);
else root->lchild=create(root->lchild,e);
}
return root;
}
int i;
int a[10030];
void zhongxu(struct node *root,int a[])
{
if(root)
{
zhongxu(root->lchild,a);
a[i++]=root->data;
zhongxu(root->rchild,a);
}
}
int main()
{
int n;
struct node *root;
int b[10030];
while(cin>>n)
{
root=NULL;
for(int i=0;i<n;i++)
{
cin>>b[i];
root=create(root,b[i]);
}
i=0;
zhongxu(root,a);
for(int i=0;i<n;i++) //为了控制输出格式,建立一个数组a,存下中序遍历的结果
{
if(i!=0)cout<<" "<<a[i];
else cout<<a[0];
}
cout<<endl;
}
return 0;
}