递归建立二叉树帮忙找问题
#include<stdio.h>#include<conio.h>
#include<stdlib.h>
#include<malloc.h>
#define Lenth sizeof(Tree)
typedef struct Tree
{
Tree *lchild; //指向二叉树的左孩子
Tree *rchild; //指向二叉树的右孩子
int data; //存放结点的序号
}Tree;
void creattree(Tree *s,int n) //用递归法创建一个二叉树
{
if(n>0)
{
s=(Tree *)malloc(Lenth);
if(!s)
{
exit(1);
}
s->data=n;
creattree(s->lchild,n-1); //进行左子树递归
creattree(s->rchild,n-1); //进行右子树递归
}
}
void showtree(Tree *s,int n)
{
if(s->data>0&&s->data<n)
{
printf("%d\n",s->data);
}
showtree(s->lchild,n);
showtree(s->rchild,n);
}
int main()
{
Tree *treehead=NULL,*s=NULL;
int treenum; //二叉树的结点个数
scanf("%d\n",&treenum); //接受二叉树结点个数
creattree(s,treenum+1); //递归创建二叉树
showtree(s,treenum+1); //第归法输出二叉树
getch();
return 0;
}
这是我写的关于用递归算法建立二叉树并输出的代码 帮看下都有些什么问题啊