回 帖 发 新 帖 刷新版面

主题:[讨论]二叉树建立的问题

我在编写二叉树的建立程序时写的是下面的程序,运行的时候总是出错,但是我真的不知道错在哪里。希望哪位能花时间帮我看一下:
#include<stdio.h>

struct tree *inittree();
void optree(struct tree *T);

struct tree
{
 int data;
 struct tree *left;
 struct tree *right;
};

int main()
{

 struct tree *T;
 T=inittree();
 optree(T);

 return 0;
}

struct tree *inittree()
{

struct tree *t;
char ch;

printf("input\n");
ch=getchar();
if(ch=='?') t=NULL;
else
{ t=(struct tree *)malloc(sizeof(struct tree));
t->data=ch;
t->left=inittree();
t->right=inittree();
}

return t;


}

void optree(struct tree *T)
{
 if(T)
 {
  printf("%d\n",T->data);
  optree(T->left);
  optree(T->right);
 }
 else
 {
  printf("There is someting wrong!\n");
 }
}

回复列表 (共1个回复)

沙发

struct tree
{
 int data;            <<==========================>>  char ch;
 struct tree *left;   
 struct tree *right;
};

类型不匹配
[quote]void optree(struct tree *T)
{
 if(T)
 {
  printf("%d\n",T->data);
  optree(T->left);
  optree(T->right);
 }
 else
 {
  printf("There is someting wrong!\n");
 }
}[/quote]
递归前序遍历,后面那个else不要了~~不然要烦死你

我来回复

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