C
C
Java2 SE 5.0 API
Java2 SE 1.4 API
Java2 EE API
Struts 1.0.2
MSDN2 Library
MySQL 5.1
MySQL 4.1
HTMLリファレンス
CSSリファレンス
JavaScript
基本カラーチャート
カレンダー
 最新PG・講座情報
 最新ニュース
 電子辞書・辞典
ご意見・ご要望はこちらまで

課題

C

連結リスト


1.連結リストとは

 連結リストとは、リストに含まれる各要素(セル(cell))をポインタでつないだものです。 要素はいろいろな種類のデータ型を持つデータで、個数には制限はありません。 また連結しているのですから、それらのデータの中には自分自身の要素を指すポインタが含まれます。

 データに1つの整数値を持つ連結リストは次のような構造体(自己参照構造体)の表現になります。

連結リストの表現
 

2.要素の挿入

 配列ではデータを挿入すると、挿入以降のデータは全て1つずつずらさなくてはなりませんが、 リストの場合は次の手順でポインタを変更することで可能となります。

 ここではポインタp で示されるセルの前に、ポインタnew で示されるセルを挿入します。
 但し、ポインタp で示されるセルの前のセルがポインタprev で示されていることにします。

  • ポインタnew の示すセルの次のポインタにポインタp を代入する
    new->next = p;
  • ポインタprev の示すセルの次のポインタにポインタnew を代入する
    prev->next = new;

要素の挿入
 

3.要素の削除

 削除の場合も挿入と同様に、配列でデータを削除すると、削除以降のデータは全て1つずつずらさなくてはなりませんが、 リストの場合は次の手順でポインタを変更することで可能となります。

 ここではポインタp で示されるセルを削除します。
 但し、ポインタp で示されるセルの前のセルがポインタprev で示されていることにします。

  • ポインタprev の示すセルの次のポインタにポインタp の示すセルの次のポインタを代入する
    prev->next = p->next;

要素の削除

 
 INDEX
  課題 C 連結リスト
1.連結リストとは
  2.プログラムの仕様
  3.プログラムの流れ
Top
Copyright© 2003-2007 FumikiChan All Rights Reserved.
http://www.fumikichan.net/