我有一个数组假设{10,1,10,9} 现在我需要一个二进制树形式,其中start节点为array [0],这里是10,树结构将是这样的 第一个元素10
这里的图片中,第一个元素是10,现在我要选择左边的孩子和右边的孩子,所以第二个元素是我的左边孩子,最后一个元素是我的右边孩子。 如果1是我的左孩子,那么我剩下10个和9个剩余要处理,所以10个将留给孩子,9个将是1个作为父母的正确孩子,现在10个作为父母,只留下9个,所以这将是左边的孩子,这棵树正在建造。
我正在尝试使用递归,我很弱,并且正在努力学习,但我的代码并没有起作用我的想法,显然我做错了,请引导我完成这个。
#include<iostream>
using namespace std;
int temparr[20];
void calculateMax(int arr[],int start, int end)
{
if(start > end)
return;
cout<<arr[start]<<" ";
calculateMax(arr,start+1,end);
calculateMax(arr,start,end-1);
}
int main()
{
int arr[] = {10,1,10,9};
temparr[0] = 10;
int n = sizeof(arr)/sizeof(int);
calculateMax(arr,0,n-1);
//for(int i=0;i<20;++i)
//cout<<temparr[i]<<" ";
return 0;
}
我的cout
应该输出10 1 10 9 9 10 9 1 10 10 1但不是。