Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 检查树是否为bst但发生错误。失败案例#25/36:未知信号11_C++_Segmentation Fault_Binary Search Tree - Fatal编程技术网

C++ 检查树是否为bst但发生错误。失败案例#25/36:未知信号11

C++ 检查树是否为bst但发生错误。失败案例#25/36:未知信号11,c++,segmentation-fault,binary-search-tree,C++,Segmentation Fault,Binary Search Tree,第一行包含顶点数n。树的顶点从0到n进行编号−1.顶点0是根。接下来的n行包含有关顶点0、1、…、n的信息−1有序。每一行包含三个整数keyi、lefti和righti-keyi是第i个顶点的键,lefti是第i个顶点左子级的索引,righti是第i个顶点右子级的索引。如果我没有left或right子级(或两者),则相应的lefti或righti(或两者)将等于−一, #include<iostream> #include<climits> using namespace

第一行包含顶点数n。树的顶点从0到n进行编号−1.顶点0是根。接下来的n行包含有关顶点0、1、…、n的信息−1有序。每一行包含三个整数keyi、lefti和righti-keyi是第i个顶点的键,lefti是第i个顶点左子级的索引,righti是第i个顶点右子级的索引。如果我没有left或right子级(或两者),则相应的lefti或righti(或两者)将等于−一,

#include<iostream>
#include<climits>
using namespace std;
int check_binary(long long int key1[],long long int left1[],long long int right1[],long long int n, long long int index,long long int max1, long long int min1)
{
    if(index==-1)
        return 1;
    if(key1[index]<min1||key1[index]>max1)
        return 0;
    if((check_binary(key1,left1,right1,n,left1[index],key1[index]-1,min1))&&(check_binary(key1,left1,right1,n,right1[index],max1,key1[index])))
        return 1;
    else
        return 0;
}
int main()
{
    long long int n,i;
    cin>>n;
    if(n==0)
    {
        cout<<"CORRECT";
            return 0;
    }
    long long int key1[n],left1[n],right1[n];
    for(i=0;i<n;i++)
    {
        cin>>key1[i]>>left1[i]>>right1[i];
    }
    if(check_binary(key1,left1,right1,n,0,INT_MAX,INT_MIN))
    {
        cout<<"CORRECT";
        return 0;
    }
    cout<<"INCORRECT";
}
#包括
#包括
使用名称空间std;
int check_二进制(long long int key1[],long long int left1[],long long int right1[],long long int n,long long int index,long long int max1,long long int min1)
{
如果(索引==-1)
返回1;
if(键1[索引]最大值1)
返回0;
if((检查二进制(key1,left1,right1,n,left1[index],key1[index]-1,min1))&(检查二进制(key1,left1,right1,n,right1[index],max1,key1[index]))
返回1;
其他的
返回0;
}
int main()
{
long-long-int n,i;
cin>>n;
如果(n==0)
{
cout>left1[i]>>right1[i];
}
如果(检查二进制(键1、左1、右1、n、0、整数最大值、整数最小值))
{

从标题来看,这听起来像是某种在线编码挑战。问题是要包含链接。我也看到了一些类似错误的潜在位置,但没有示例输入来重现问题,它们只是猜测,很可能是非标准的
long-long-int-key1[n]
etc太大,无法放在堆栈上。这是课程编程作业中的一个问题。示例输入针对小值,但不针对大值。