回 帖 发 新 帖 刷新版面

主题:建树的问题

这是我做的一个建立二叉的的程序,其中的结点为字符串型的,可是为什么就是的running的时候死掉了呢,请知道原因的人帮一下。
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
typedef struct node
{
    char name[30];
    struct node *lchild;
    struct node *rchild;
}Bnode;

void createbitree(Bnode **T)
{
    char content[30];
    printf("Please Input data:");
    gets(content);
    if(strcmp(content,"empty")==0) (*T) = NULL;
    else
    {
    (*T)=(Bnode *)malloc(sizeof(Bnode));
    strcpy((*T)->name,content);
        createbitree(&((*T)->lchild));
        createbitree(&((*T)->rchild));
    }
}
void preorder(Bnode *root)
{
  if(root!=NULL)
  {
     puts(root->name);
     preorder(root->lchild);
     preorder(2root->rchild);
  }
}
main()
{
   Bnode *T;
   clrscr();
   createbitree(T);
   preorder(T);
}



回复列表 (共2个回复)

沙发

preorder(2root->rchild);    这里2root应该是root,估计你是贴字贴错了。
主函数mian里: createbitree(T)改成createbitree(&T)就可以了~~我在我机子上已经通过了~~~~~

板凳

加一句~~你的先序遍历函数写得很烂~~~呵呵~~~^-^

我来回复

您尚未登录,请登录后再回复。点此登录或注册