愿你 发表于 2018-4-23 20:18:21

为什么我用递归创建二叉树的时候,陷入死循环?

#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:01

愿你 发表于 2018-4-23 22:13:45

ba21 发表于 2018-4-23 21:57


我明白啦 谢谢你~
还有你说的课程是什么课程??{:10_245:}{:10_245:}
页: [1]
查看完整版本: 为什么我用递归创建二叉树的时候,陷入死循环?