主题:恳求各位啦
#include<stdio.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));
(*t)->data=ch;
createbintree(&(*t)->lchild);
createbintree(&(*t)->rchild);
}
}
/*前序遍历叶子结点个数*/
void preorder(bintree t)
{int i=0;
if(t)
{
preorder(t->lchild);
preorder(t->rchild);
if((t->lchild==NULL)&&(t->rchild==NULL))
{i++;} //i用于记下叶子结点个数
}
printf("%d",i);//这里有很大的问题,告诉我
}
main()
{bintree *q,p;
int m;
q=&p;
createbintree(q);
preorder(p);
getch();
}
我不大懂递归的思想,还有大括号的作用域;请详说
#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));
(*t)->data=ch;
createbintree(&(*t)->lchild);
createbintree(&(*t)->rchild);
}
}
/*前序遍历叶子结点个数*/
void preorder(bintree t)
{int i=0;
if(t)
{
preorder(t->lchild);
preorder(t->rchild);
if((t->lchild==NULL)&&(t->rchild==NULL))
{i++;} //i用于记下叶子结点个数
}
printf("%d",i);//这里有很大的问题,告诉我
}
main()
{bintree *q,p;
int m;
q=&p;
createbintree(q);
preorder(p);
getch();
}
我不大懂递归的思想,还有大括号的作用域;请详说