#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define status int
typedef struct bitnode
{
int data;
struct bitnode *lchild;
struct bitnode *rchild;
} bitnode,*sq;
int r=0;
bitnode *q;
void createbitree(sq &T)
{
char ch;
scanf("%c",&ch);
if(ch=='#')
T=NULL;
else
{
T=(bitnode *)malloc(sizeof(bitnode));
T->data=ch;
if(r==0)
{
q=T;
r=1;
}
createbitree(T->lchild);
createbitree(T->rchild);
}
}
void Preorder(sq &T)
{
if(T!=NULL)
{
printf("%c",T->data);
Preorder(T->lchild);
Preorder(T->rchild);
}
}
void inorder(sq &T)
{
if(T!=NULL)
{
inorder(T->lchild);
printf("%c",T->data);
inorder(T->rchild);
}
}
void postorder(sq &T)
{
if(T!=NULL)
{
postorder(T->lchild);
postorder(T->rchild);
printf("%c",T->data);
}
}
int main()
{
bitnode *t;
printf("createbitree:");
createbitree(t);
t=q;
printf("Preorder:");
Preorder(t);
printf("\n");
printf("inorder:");
inorder(t);
printf("\n");
printf("postorder:");
postorder(t);
printf("\n");
return 0;
#include<iostream>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define status int
typedef struct bitnode
{
int data;
struct bitnode *lchild;
struct bitnode *rchild;
} bitnode,*sq;
int r=0;
bitnode *q;
void createbitree(sq &T)
{
char ch;
scanf("%c",&ch);
if(ch=='#')
T=NULL;
else
{
T=(bitnode *)malloc(sizeof(bitnode));
T->data=ch;
if(r==0)
{
q=T;
r=1;
}
createbitree(T->lchild);
createbitree(T->rchild);
}
}
void Preorder(sq &T)
{
if(T!=NULL)
{
printf("%c",T->data);
Preorder(T->lchild);
Preorder(T->rchild);
}
}
void inorder(sq &T)
{
if(T!=NULL)
{
inorder(T->lchild);
printf("%c",T->data);
inorder(T->rchild);
}
}
void postorder(sq &T)
{
if(T!=NULL)
{
postorder(T->lchild);
postorder(T->rchild);
printf("%c",T->data);
}
}
int main()
{
bitnode *t;
printf("createbitree:");
createbitree(t);
t=q;
printf("Preorder:");
Preorder(t);
printf("\n");
printf("inorder:");
inorder(t);
printf("\n");
printf("postorder:");
postorder(t);
printf("\n");
return 0;
}