求助二叉树中序遍历

如题所述

第1个回答  2017-09-20
#include <stdio.h>
#include <malloc.h>

typedef struct node
{
int data;
struct node *lchl,*rchl;
} NODE;

NODE *create(NODE *t) //函数带有返回值 以影响调用者
{
int a;
scanf("%d",&a);
if(a)
{
t=(NODE*)malloc(sizeof(NODE));
t->data=a ;
t->lchl = create(t->lchl);
t->rchl = create(t->rchl);
return t ; // 此处返回刚才申请单元的指针 t
}
else
return NULL; // 无子树返回 NULL
}

void print(NODE *T) //中序遍历
{
if(T)
{
print(T->lchl);
printf("%4d",T->data);
print(T->rchl);
}
}

void main()
{
NODE *root;
root = create(root) ; // 接收返回值
print(root);
printf("\n") ;
}本回答被提问者采纳
第2个回答  2020-11-23
相似回答