编程和数据结构

时间:2017-10-02 08:42:34

标签: data-structures

假设给你的数组p [1 ...... N]和q [1 ...... N]都未初始化,也就是说,每个位置可能包含一个任意值)和一个变量计数,初始化为0.考虑以下程序集和is_set:

set(i) { 
    count = count + 1; 
    q[count] = i; 
    p[i] = count; 
} 
is_set(i) {
    if (p[i] ≤ 0 or p[i] > count)
        return false; 
    if (q[p[i]] ≠ i)
        return false;
    return true;
}

显示如果没有为某些i调用set(i),那么无论p [i]包含什么,is_set(i)都将返回false。

我的推理:-is_set(i) 如果p [i]是< = 0,则OR的第一个条件为真,并且首先执行if。如果p [i]> 0,那么我们知道count为零,因此在第一个OR的第二个条件是真的。如果p [i]可能包含它将始终输入此if并返回false。请更正我如果错了

0 个答案:

没有答案