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


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