题目信息:http://xyoj.xynu.edu.cn/problem.php?id=1367
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char s[105];
typedef struct BiTNode {
char data;
struct BiTNode *lchild,*rchild;
} BiTNode,*BiTree;
int CreateBiTree(BiTree &T,int &pos,int &len) {//三个地址符都要取
if(pos>=len)
return 0;
if(s[pos]==' ') {
T=NULL;
pos++;
} else {
T=(BiTree)malloc(sizeof(BiTNode));
T->data=s[pos];
pos++;
CreateBiTree(T->lchild,pos,len);
CreateBiTree(T->rchild,pos,len);
}
return 0;
}
void PreOrderTraverse(BiTree T) {
if(T) {
printf("%c ",T->data);
PreOrderTraverse( T->lchild);
PreOrderTraverse( T->rchild);
}
}
void InOrderTraverse(BiTree T) {
if(T) {
InOrderTraverse( T->lchild);
printf("%c ",T->data);
InOrderTraverse( T->rchild);
}
}
int main() {
int pos,len;
while(gets(s)) {
BiTree T;
len=strlen(s);
pos=0;
CreateBiTree(T,pos,len);
PreOrderTraverse(T);
printf("\n");
pos=0;
InOrderTraverse(T);
printf("\n");
pos=0;
InOrderTraverse(T);
printf("\n");
}
return 0;
}