使用递归 C++ 进行子集验证

subset verification using recursion c++

本文关键字:子集 验证 C++ 递归      更新时间:2023-10-16

我的任务是:

使用 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;
    }
}

有人可以指出问题吗?

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

在第 8 行中使用此代码,

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