Algorithm 从数组的起始元素和结束元素构建二叉树
我有一个数组,假设{10,1,10,9} 现在我要形成一个二叉树,起始节点为数组[0],这里是10,树结构如下 第一要素10 在图中,第一个元素是10,现在我必须选择左子元素和右子元素,所以第二个元素是我的左子元素,最后一个元素是我的右子元素。 如果1是我的左孩子,那么我还有10和9要处理,所以10将是左孩子,9将是作为父的1的右孩子,现在对于作为父的10,只剩下9,所以这将是左孩子,所以这棵树正在构建一个 我正在尝试使用递归,我有点弱,并试图学习,但我的代码没有按照我的想法工作,显然我做了一些错误的事情,请指导我通过这一点Algorithm 从数组的起始元素和结束元素构建二叉树,algorithm,data-structures,binary-tree,Algorithm,Data Structures,Binary Tree,我有一个数组,假设{10,1,10,9} 现在我要形成一个二叉树,起始节点为数组[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;
}
#包括
使用名称空间std;
int temparr[20];
void calculateMax(int arr[],int start,int end)
{
如果(开始>结束)
回来
库特