使用递归c ++的子集验证

时间:2017-03-17 23:25:40

标签: c++ algorithm

我的任务是:

  

使用is_element_of函数,实现一个函数,该函数确定一个数组是否是另一个数组的“子集”(即数组a中的每个元素是否也是数组b的元素)

bool is_subset(int* a, int length_a, int* b, int length_b)
bool is_element_of(int i, int* array, int length)

is_element_of的代码

bool is_element_of(int i, int* array, int length) {
    if (length == 0)
        return false;
    else {
        if (i == array[length - 1] || is_element_of(i, array, length - 1))
            return true;
        else
            return false;
    }
}

is_subset的代码

bool is_subset(int* a, int length_a, int* b, int length_b) {
    if (length_a == 0 && length_b == 0)
        return true;
    else if (length_a != 0 && length_b == 0)
        return false;
    else {
        if (
            is_element_of(a[length_a], b, length_b) &&
            is_subset(a, length_a - 1, b, length_b)
        )
            return true;
        else
            return false;
    }
}

有人可以指出问题吗?

1 个答案:

答案 0 :(得分:0)

在is_subset函数中,在第二行使用此代码, if(length_a == 0)

第8行中的

使用此代码,

is_element_of(a [length_a-1],b,length_b)&&