回 帖 发 新 帖 刷新版面

主题:帮帮忙啊

#include<stdio.h>
#include<process.h>
#define NULL 0
typedef  char datatype ;
typedef  struct node{datatype data;
                     struct node *lchild;
                     struct node *rchild;
                     }bintnode;
                     typedef bintnode *bintree;
                     bintree root;

/*建立一棵树*/
void createbintree(bintree *t)
{char ch;
   if((ch=getchar())==' ')
   *t=NULL;
else
  { *t=(bintnode*)malloc(sizeof(bintnode));
   createbintree(&(*t)->lchild);
   createbintree(&(*t)->rchild);
   (*t)->data=ch;}

}




/*后序遍历树并打印遍历的第一个结点*/
void postorder1(bintree t)
{  if(t)
   {postorder1(t->lchild);
    
    postorder1(t->rchild);
    printf("%c",t->data);
    exit(0);
   }

}






main()
{bintree *p,q;
p=&q;
createbintree(p);
postorder1(q);
getch();
}

题目要求返回后序遍历下的第一个结点







































































回复列表 (共1个回复)

沙发

/*建立一棵树*/
void createbintree(bintree *t) //t是指针,改成 (bintree &t)
{char ch;
   if((ch=getchar())==' ')
   *t=NULL;                  //t=NULL;
else
  { *t=(bintnode*)malloc(sizeof(bintnode)); //把*t改成t
   createbintree(&(*t)->lchild);       //改成createbintree(t->lchild);
   createbintree(&(*t)->rchild);       //改成createbintree(t->rchild);
   (*t)->data=ch;}                     //t->data=ch;

}

主要是语法问题吧。bintnode是定义的结构体类型
bintree是指向bintnode类型的指针。
主函数也有这样的错误。
typedef bintnode *bintree;
表示你能用bintree去定义一个指针。比如bintree p ; p就是一个指向bintnode类型的指针. 也就是说bintnode *p 和bintree p ; 是一样的

我来回复

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