为什么我用递归创建二叉树的时候,陷入死循环?
#include <stdio.h>#include <stdlib.h>
typedef struct BiNode
{
char data;
struct BiNode *lchild,*rchild;
}BiNode,*BiTree;
void creattree(BiTree *T)//利用递归先序创建二叉树
{
char ch;
printf("请开始输入一个字符:");
scanf("%c",&ch);
if(ch=='#')
(*T)=NULL;
else
{
(*T)=(BiTree)(malloc(sizeof(BiNode)));
(*T)->data=ch;
creattree(&(*T)->lchild);
creattree(&(*T)->rchild);
}
}
void preordertree(BiTree T)
{
if(T)
{
printf("%c",T->data);
preordertree(T->lchild);
preordertree(T->rchild);
}
}
int main()
{
BiTree T;
printf("请创建一棵二叉树:\n");
creattree(&T);
printf("该二叉树的前序遍历结果为:");
preordertree(T);
return 0;
}@人造人 ba21 发表于 2018-4-23 21:57
我明白啦 谢谢你~
还有你说的课程是什么课程??{:10_245:}{:10_245:}
页:
[1]