データ構造とアルゴリズム(VI) - 循環リスト

循環リスト

  端に一本鎖末端は、終端ノード・ポインタ・フィールドは、円形のリンクリストと呼ばれるヘッドノード、ロビン・チェーン構成によってヌルポインタをポイントします。

ヌル循環リストは、ヘッドノードのヘッドノードのポインタです。

環状の非空のリスト、ヘッド素子ポイントノード非ヘッドノード:

テーブルは空と非空リストの処理は、追加のヘッドノードを必要とします。

ノード挿入:ノードが第3のノードで、元のドメインに、xがノードSに割り当てられている設定値、ノードセットPの第2のノードは、ノードポインタP点が設けられている挿入する必要がありますノードS、P Sリダイレクトノードからドメイン後継ノードポインタ。

コードの実装:

void Insert(int i , ElemType x){
    P = L; j = 0;
    while(p! = L && j<i-1){    //遍历链表,查找目标位置
        p = p->next;
        j++;
    }
    if(p == null) 
        return 0;
    else{        //在指定位置插入结点
        s = (List)malloc(sizeof(struct LNode));
        s->data = x;
        s->next = p->next;
        p->next = s;
    }
}

条件循環リストをサイクリング:P = L; //ないサイクルテーブルポインタがされていれば!

開始ノードと端末ノードを検索します。

開始ノード:L->次の

ノードを終了:単一リンクリスト・トラバーサル再び、テーブルの長さになるまで、時間複雑度はO(N)です。

循環リストのテールポインタ付き

開始ノード:リア>ネクスト>次の

終了ノード:リア

 

公開された58元の記事 ウォン称賛31 ビュー40000 +

おすすめ

転載: blog.csdn.net/qq_37504771/article/details/104908879