7.2つのチェーンテーブルが交差しているかどうかを判断する

606 ワード

(1). チェーンテーブルが無環の場合、チェーンテーブルの末尾要素が同じかどうかを直接判断すればよい.あるいは、1つのチェーンテーブルの末尾要素を別のチェーンテーブルの先頭に向けて、リングが現れるかどうかを判断します.(2). チェーンテーブルにリングがある場合、チェーンテーブルの1つのうち2つのポインタが交差するノードは、別のチェーンテーブルにないと判断します.ある場合は、交差します.チェーンテーブルが交差しているかどうかを判断する関数です.
int check(linklist link) {
    if (head == NULL)
        return -1;
    linklist *low=head, *fast=head->next;
    while (fast != NULL && fast->next != NULL) {
        low = low->next;
        fast = fast->next->next;
        if (low == fast)
            return 0;
    }
    return -1;
}