递归建立的时候总是出现返回到上一层然后在上一层与下一层之间死循环?
#include <iostream>
using namespace std;
#include <stdlib.h>
#define NULLVALUE 0
typedef int Elemtype;
typedef struct Tree{
Elemtype data;
struct Tree *LTree;
struct Tree *RTree;
};
void Create(Tree *tree,Elemtype *data,int start,int len){
if(data[start]==NULLVALUE||start>=len){
cout<<222<<endl;//测试
return ;
}
else{cout<<data[start]<<endl;
tree=(Tree *)malloc(sizeof(Tree));
tree->data=data[start];
Create(tree->LTree,data,++start,len);
Create(tree->RTree,data,++start,len);
}
}
void Print(Tree *tree){
if(tree==NULL)
return ;
cout<<tree->data<<" ";
Print(tree->LTree);
Print(tree->RTree);
}
int main(){
Elemtype data[]={1,2,4,0,0,5,0,0,3,6,0,0,7};
int len=sizeof(data)/sizeof(data[0]);
Tree *tree;
Create(tree,data,0,len);
Print(tree);
return 0;
}