0
,大家好,下面的代码将停止,因为运行时错误使用链接找到最大的阵列
#include<iostream>
using namespace std;
struct node
{
int item;
node *l;
node *r;
node(int x)
{
item=x; l=0;r=0;
}
};
typedef node *link;
link Max(int a[],int l,int n)
{
int m=l+(l+n)/2;
link x=new node(a[m]);
if(l==n) return x;
x->l=Max(a,l,m);
x->r=Max(a,m+1,n);
int u=x->l->item;
int v=x->r->item;
if(u>v) x->item=u;
else x->item=v;
return x;
}
int main(){
link y;
int a[]={12,3,5,4,7,6,20,11,10,9};
int n=sizeof(a)/sizeof(a[0]);
y=Max(a,0,n-1);
cout<<y->item<<endl;
return 0;
}
我不明白是什么原因,我宣布结构节点作为必要的工作,使用递归函数正确,我认为什么是另一个原因为什么它不工作?请给我一些建议,
当您运行它时会发生什么? –
它打开窗口并写入异常发生,运行时错误 –
您是否尝试过在调试器中运行它? –