2つのチェーンテーブルが交差しているかどうかを判断
1470 ワード
2つのチェーンテーブルが交差しているかどうかを判断し、交差している場合は、交差していない場合はNULLアルゴリズム思想に戻る:2つのチェーンテーブルの末尾ノードを比較し、ノードアドレスが同じであれば、前駆ノードのアドレスを比較し、このようにして、ノードのアドレスが異なるか、2つのチェーンテーブルが比較されるまで行う.アドレスが異なる場合は、チェーンテーブルノードの後続アドレスを返します.アドレスが同じ場合は、2つのチェーンテーブルが同じチェーンテーブルであることを示し、ヘッダノードを返します.
ElemSN* Jud_Same_Node(ElemSN *h1,ElemSN *h2)
{
ElemSN *p1 = null, *p2 = null, *q1 = null, *q2 = null, *sign = null;
while (q1-h1&&q2-h2)
{
//
for (p1 = h1; p1->next - q1; p1 = p1->next);
q1 = p1;
for (p2 = h2; p2->next - q2; p2 = p2->next);
q2 = p2;
if (!(q1 - q2))// ‘ ’ , ‘ ’
{
sign = q1;
}
else// , ,
{
break;
}
}
return sign;
}