/****************************************************/
typedef struct BiTNode {
char data; //数据域
struct BiTNode *lChild, *rChild; //左右子数域
}BiTNode, *BiTree;
/****************************************************/
//创建二叉树 先序
Status CreateBiTree(BiTree *T)
{
char ch;
char temp;
scanf("%c",&ch);
temp = getchar();
if ('#' == ch)
*T = NULL;
else
{
*T = (BiTree)malloc(sizeof(BiTNode));
if (!*T)
exit(-1);
(*T)->data = ch;
printf("\n请输入%c结点的左子结点:",(*T)->data );
CreateBiTree(&(*T)->lChild);
printf("\n请输入%c结点的右子结点:",(*T)->data );
CreateBiTree(&(*T)->rChild);
}
return OK;
}
传递给CreateBiTree的参数的形式可以是以下两种
int main(void)
{
BiTree *T;
CreateBiTree(&T);
PreOrderTraverse(T);
return 0;
}
和
int main(void)
{
BiTree *T = (BiTree *)malloc(sizeof(BiTree));
CreateBiTree(T);
return 0;
}
选择第一种,这样对于其他函数的操作也比较方便