基本情報技術者 平成14年春期 午前問12

午前問12

次のような双方向のポインタをもつリスト構造のデータがある。社員Gを社員Aと社員Kの間に追加する場合,追加後の表のポインタa〜fのうち,追加前と比べて値が変わるのは何か所か。
12.gif/image-size:295×251
  • [この問題の出題歴]
  • 基本情報技術者 H22春期 問5

分類

テクノロジ系 » アルゴリズムとプログラミング » データ構造

正解

解説

追加前の社員名をポインタの示すアドレス順(括弧内はアドレス)に並べると、前ポインタが 0(参照なし) の要素が先頭、次ポインタが 0(参照なし) の要素が最後尾に配置されるので、

100:社員A(次300,前0)
  ↓
300:社員K(次200,前100)
  ↓
200:社員T(次0,前300)

という順序になります。

社員Gは、社員Aと社員Kの間に追加されるので、追加後の順番は、

100:社員A(次300,前0)
  ↓
400:社員G(次__,前__)
  ↓
300:社員K(次200,前100)
  ↓
200:社員T(次0,前300)

となります。

「A→G→K」のポインタの参照が正しく繋がるためには、Gの1つ目であるAの次ポインタとGの次であるKの前ポインタをそれぞれ400に更新する必要があるので、追加前と値が変わるポインタは、以下のa,fの2か所となります。
12a.gif/image-size:294×125
© 2010-2019 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop