qq_41235711 2018-10-19 01:01 采纳率: 66.7%

用数组递归建立二叉树出错？

`````` #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;
}
``````
• 写回答

1条回答默认 最新

• threenewbee 2018-10-20 01:57
关注

``````// Q703225.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#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(start>=len||data[start]==NULLVALUE){
*tree = NULL;
return ;
}
else{
*tree=(Tree *)malloc(sizeof(Tree));
(*tree)->data=data[start];
++start;
Create(&(*tree)->LTree,data,start,len);
++start;
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=NULL;
int start=0;
Create(&tree,data,start,len);
Print(tree);
return 0;
}

``````

评论

悬赏问题

• ¥15 知道这个是什么图吗，想知道制作详细做法，或者模版也行
• ¥15 CubeMX配置lwip实现TCP数据传输
• ¥15 关于#51单片机#的问题：不能用中断、定时器之类的辅助实现
• ¥15 blastfoam初学者尝试跑算例遇到问题
• ¥25 pyqt6常规布局问题！我刚学 有点难度！
• ¥20 基于ros2的orbslam3的实时运行
• ¥100 支付行业技术人员来一个。常年包养
• ¥15 kotlin multiplaform Compose项目 需要实现一个文件选择器获取手机上的文件
• ¥15 Python没爬取到数据，求看这个是什么原因
• ¥15 sqlite 读取数据如何避免float类型转化为指数形式