void CreateBinTree ( BinTree *T ) |
{ /*以加入结点的先序序列输入,构造二叉链表*/ |
char ch; |
scanf ( "\n%c" ,&ch ); |
if ( ch== '0' ) *T=NULL; /*读入0 时,将相应结点置空*/ |
else |
{ |
*T= ( BinTNode* ) malloc ( sizeof ( BinTNode ) ); /*生成结点空间*/ |
( *T )->data=ch; |
CreateBinTree ( & ( *T )->lchild ); /*构造二叉树的左子树*/ |
CreateBinTree ( & ( *T )->rchild ); /*构造二叉树的右子树*/ |
} |
} |
void InOrderOut ( BinTree T ) |
{ /*中序遍历输出二叉树T 的结点值*/ |
if ( T ) |
{ |
InOrderOut ( T->lchild ); /*中序遍历二叉树的左子树*/ |
printf ( "%3c" ,T->data ); /*访问结点的数据*/ |
InOrderOut ( T->rchild ); /*中序遍历二叉树的右子树*/ |
} |
} |
main() |
{ |
BiTree bt; |
CreateBinTree ( &bt ); |
InOrderOut ( bt ); |
} |