IPA過去問ドリル

令和元年度 秋期 応用情報技術者試験 午前 問6

テクノロジ/アルゴリズム

先頭ポインタと末尾ポインタをもち,多くのデータがポインタでつながった単方向の線形リストの処理のうち,先頭ポインタ,末尾ポインタ又は各データのポインタをたどる回数が最も多いものはどれか。ここで,単方向のリストは先頭ポインタからつながっているものとし,追加するデータはポインタをたどらなくても参照できるものとする。

出典:令和元年度 秋期 応用情報技術者試験 午前 問6

正解:エ

解説

単方向リストの各要素は次の要素へのポインタしかもちません。末尾のデータを削除するには,末尾の一つ前の要素を新しい末尾にする必要がありますが,その要素へは先頭から順にポインタをたどるしかなく,全要素分をたどることになります。他の三つの処理はポインタを数回たどるだけで済みます。

選択肢ごとの解説

  • 誤り。先頭への追加は,追加するデータのポインタを旧先頭に向け,先頭ポインタを更新するだけで済みます。
  • 誤り。先頭の削除は,先頭ポインタで先頭要素を参照し,その次の要素のアドレスを先頭ポインタに設定するだけで済みます。
  • 誤り。末尾への追加は,末尾ポインタで末尾要素に直接到達でき,そのポインタを新しい要素に向けるだけで済みます。
  • 正しい。末尾を削除すると末尾の一つ前の要素を新しい末尾にする必要がありますが,単方向リストでは前の要素をたどれないため,先頭から全要素分のポインタをたどることになります。
応用情報技術者の過去問を演習モードで解く