////////////////////////
#include "stdio.h"
#include <stdlib.h>
#include <malloc.h>typedef struct BiTnode{
char data;
struct BiTnode *lchild,*rchild;
}BiTnode,*BiTree;bool CreateBiTree(BiTree&T)
{
char ch;
scanf(&ch);
if(!T)
{
T=(BiTnode*)malloc(sizeof(BiTnode));
T->data=ch;
T->lchild=NULL;
T->rchild=NULL;
}
else
{
if(T->data<=ch)
{CreateBiTree(T->lchild);}
else
{CreateBiTree(T->rchild);}
}
return true;
}bool InOrderTraverse(BiTree&T)
{
printf("%s",T->data);
InOrderTraverse(T->lchild);
InOrderTraverse(T->rchild); return 0;
}
int main()
{   
BiTree T=NULL;
CreateBiTree(T);
InOrderTraverse(T); return 0;
}
///////////////////////////////////

解决方案 »

  1.   

    bool CreateBiTree(BiTree&T)  -> bool CreateBiTree(BiTree*T)
    bool InOrderTraverse(BiTree&T) -> bool InOrderTraverse(BiTree*T)scanf(&ch); -> scanf("%c", &ch);
      

  2.   

    scanf(&ch); -> scanf("%c", &ch);
      

  3.   

    to:GoAround(我不要分,我要学习)
       T就是一个BiTnode* 类型。
       还是不行。
      

  4.   

    以上代码逻辑有问题,会内存溢出
    修改后的代码:(注只能读入字符,输出字符,且不会创建子树)#include "stdio.h"
    #include <stdlib.h>
    #include <malloc.h>typedef struct BiTnode{
    char data;
    struct BiTnode *lchild,*rchild;
    }BiTnode,*BiTree;bool CreateBiTree(BiTree&T)
    {
    char ch;
    scanf("%c",&ch);
    if(!T)
    {
    T=(BiTnode*)malloc(sizeof(BiTnode));
    T->data=ch;
    T->lchild=NULL;
    T->rchild=NULL;
    }
    else
    {
    if(T->data<=ch)
    {CreateBiTree(T->lchild);}
    else
    {CreateBiTree(T->rchild);}
    }
    return true;
    }bool InOrderTraverse(BiTree&T)
    {
    printf("%c",T->data);
    printf("\n");
    if(T->lchild!=NULL)
    InOrderTraverse(T->lchild);
    if(T->rchild!=NULL)
    InOrderTraverse(T->rchild);
    return 0;
    }
    int main()
    {   
    BiTree T=NULL;
    CreateBiTree(T);
    InOrderTraverse(T); return 0;
    }
      

  5.   

    to: oljpy(美丽的姑娘千千万,为什么只有你最难看)    结果还是不对,只输出一个字符。
      

  6.   

    to:oljpy我的意思就是将输入的字符创建成一个有序的二叉树,然后编历有序输出。请你给改一下。xiexie
      

  7.   

    当输入 ‘=’时结束输入
    #include "stdio.h"
    #include <stdlib.h>
    #include <malloc.h>typedef struct BiTnode{
    char data;
    struct BiTnode *lchild,*rchild;
    }BiTnode,*BiTree;bool CreateBiTree(BiTree&T)
    {
    char ch;
    scanf("%c",&ch);
    if(!T)
    {
    T=(BiTnode*)malloc(sizeof(BiTnode));
    T->data=ch;
    T->lchild=NULL;
    T->rchild=NULL;
    }
    if(ch=='=')return false;
    {
    if(T->data<=ch)
    {CreateBiTree(T->lchild);}
    else
    {CreateBiTree(T->rchild);}
    }
    return true;
    }bool InOrderTraverse(BiTree&T)
    {
    printf("%c",T->data);
    if(T->lchild!=NULL)
    InOrderTraverse(T->lchild);
    if(T->rchild!=NULL)
    InOrderTraverse(T->rchild);
    return 0;
    }
    int main()
    {   
    BiTree T=NULL;
    CreateBiTree(T);
    InOrderTraverse(T); return 0;
    }