• ベストアンサー

線形リストの問題で、数xを入力して、x番目のデータを削除するという問題

線形リストの問題で、数xを入力して、x番目のデータを削除するという問題で、どうプログラムすればいいのかどなたかお教え下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

(1) まず、3つのデータを見つける。 a)削除する対象のひとつ前のデータへのポインタ。(NULLのことがある) b)削除する対象のデータへのポインタ。(これがx番目) c)削除する対象の次のデータへのポインタ。(NULLのことがある) x番目が存在しないときは、そもそも処理をする必要がない。 (2) a, b, cのポインタをつなぎかえて a->b->c を a->c というリストにする。 (3) 必要なら、bのメモリーを解放する。 と、まぁ、こんな感じです。 bがリストの先頭や最後にあるときは、前後のデータへのポインタがNULLだから注意してください。 もとのデータ構造にもよりますが、 bがリストの先頭にあるときは、さらに注意が必要です。 リストへのポインタをpListとすると bがリストの先頭にあるときは、 [削除前] pList ↓ b->c [削除後] pList ↓ c となり、リストへのポインタpListの値も変える必要があるからです。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

当該の線形リストの定義と、リストにデータを挿入する部分の コードを示せますか?

関連するQ&A