递归函数的执行过程不懂?
#include "stdafx.h"#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define NULL 0
typedef struct bitnode
{
char data;
struct bitnode *lchild,*rchild;
}bitnode,*bitree;
bitree create(bitree t)
{
char ch;
scanf("%c",&ch);
if(ch=='#')
{
t=NULL;
}
else
{
t=(bitree)malloc(sizeof(bitnode));
t->data=ch;
t->lchild=create(t->lchild); //这个递归函数是如何调用的?
t->rchild=create(t->rchild); //这个递归函数是如何调用的?
}
return t;
}
void preorder(bitree t)
{
if(t)
{
printf("%c",t->data);
preorder(t->lchild);//这个函数是如何访问结点值?
preorder(t->rchild);
}
}
int main(int argc, char* argv[])
{
bitree t;
t=create(t);
preorder(t);
return 0;
}