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