首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

递归二叉树有关问题

2012-05-10 
递归二叉树问题C/C++ code#include stdio.h#include malloc.h#include stdlib.h#define OK 1#define

递归二叉树问题

C/C++ code
#include <stdio.h>#include <malloc.h>#include <stdlib.h>#define OK 1#define ERROR -1typedef int Status;typedef char TElemType;typedef struct BiTNode{    TElemType  data;    struct BiTNode * lchild, * rchild;}BiTNode, * BiTree;//------------------------------------------BiTree CreateBiTree( BiTree &pt );    //此处生成树传回的是指针(指针变量引用)//------------------------------------------int main(){    BiTree T;    int choice, status;    puts( "welcome!" );    puts( "No1 CreateBiTree" );    printf( "please enter your choice:" );    scanf( "%d", &choice );    switch( choice )    {        case 1:            printf( "please input some chars:" );            CreateBiTree( T );            break;        default:            break;                }    return 0;}BiTree CreateBiTree( BiTree &pt ){    char ch;        if( (ch = getchar()) == '@' )        pt = NULL;    else    {        pt = (BiTree)malloc( sizeof(BiTNode) );        if( !pt )            exit(0);        pt->data = ch;        printf( "%c\n", pt->data );        pt->lchild = CreateBiTree( pt->lchild );        pt->rchild = CreateBiTree( pt->rchild );    }    return pt;}

请问这段递归二叉树生成有什么问题啊?
为什么生成树以后程序不能退出,还是继续输入

[解决办法]
探讨

不行啊

[解决办法]
这是我原先写的,供LZ参考吧
C/C++ code
BiTNode *CreatBiTree(){    char ch;    BiTNode *p;    ch = getchar();    if (ch == EOF)        return NULL;    getchar();    p = (BiTNode *)malloc(sizeof(BiTNode));    p->data = ch;    p->lchild = CreatBiTree();    p->rchild = CreatBiTree();    return p;} 

热点排行