typedef enum _STATUS {ERROR, OK} STATUS;
typedef struct _BiTNode {
char data;
struct _BiTNode *lchild;
struct _BiTNode *rchild;
} BiTNode, *BiTree;
/*創(chuàng)建二叉樹*/
STATUS CreateBiTree(BiTree *T)
{/*按先序次序輸入二叉樹節(jié)點的值,空格表示空樹。*/
char ch;
scanf("%c", &ch);
if (ch == ' ') {
*T = NULL;
} else {
if ( !(*T = (BiTNode *)malloc(sizeof(BiTNode)))) exit(-1);
(*T)->data = ch; //生成根節(jié)點
CreateBiTree(&((*T)->lchild)); //構(gòu)造左子樹
CreateBiTree(&((*T)->rchild)); //構(gòu)造右子樹
}
return OK;
}
/*中序遍歷二叉樹*/
STATUS InOrderTraverse(BiTree *T)
{
if (*T) {
if (InOrderTraverse(&((*T)->lchild)))
printf("%c ", (*T)->data);
if (InOrderTraverse(&((*T)->rchild)))
return OK;
return ERROR;
} else {
return OK;
}
}