二重リンクリスト(B)

新しいノード二重リンクリストを挿入して、ノードを削除します

約新しいノードが挿入され、同じ方法および使用される単一の二重リンクリスト、相違点のみが必要とされる二重リンクリストのポインタは、データノードを転送するために参照する交換論理アドレス内に格納されています

削除ノードについて、単一のリストは二重にリンクされたリストのポインタがフロントを指しているがあるので、リスト全体がアウトになります行うことができます一つのノード、ノードを削除するには、ポインタの前で他を削除するために必要への2つのポインタ、ポインタを使用していますノードは、そのため、あなたはポインタを再宣言する必要はありません。

ノードを挿入します。

ボイド node_insert(ノード*ヘッド、INT N-)   // ノードの後に作成したデータを示すために、N-用い
{ 
    ノード * P、Q *;   // Pノードを指すように、qが新しいノードを作成するために使用される
    int型の L = 0 
    Pを頭部=> 次;
     しばらく(P =!NULL)
    { 
        L ++ ;
         IF(N-Lの==は)   // 、ポジションを見つけるの挿入の創出を達成
        { 
            Q = 新しい新しいノードを、
            CIN >> Q-> A; 
            Q - >次> = P-NEXT;   // データを交換するための次のノードのアドレスをポイントし、まだ完成
            P->次に= Q;
             IF(!Q->次に= NULL)
                Q - >ネクスト> Q =プレ;   //は単にノードアドレスの前にデータポイントを交換する必要が 
            Q->予備= P;
             BREAK ; 
        } 
        P P - => 次に; 
    } 
}

 

ノードを削除します。

ボイド node_delete(ノード*ヘッド、INT N-)
{ 
    ノード * P;
     INT L = 0 
    P =頭部> 次に、
     一方(P =!NULL)
    { 
        L ++ ;
         IF(L == N-)
        { 
            P - >プレ> = P-次>次;   // のノード削除する前に、次のポインタを見つける 
            P->ネクスト> P-予め=>プレ; //は、ノードポインタが予め削除見つける
            削除Pを、
             BREAK 
        } 
        P = P-> 次に、
    } 
}

 

おすすめ

転載: www.cnblogs.com/hzb1224/p/11407460.html