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

分野:アルゴリズムとプログラミング|実際に出題されたIPA過去問題

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

  1.  先頭にデータを追加する処理
  2.  先頭のデータを削除する処理
  3.  末尾にデータを追加する処理
  4.  末尾のデータを削除する処理
解答・解説を見る

正解:エ

AI解説

先頭ポインタと末尾ポインタを持つ単方向線形リストでは、末尾へのアクセスは末尾ポインタで直接できるが、末尾の「一つ前」のデータを知るには先頭からたどるしかない。末尾データの削除ではその直前ノードのポインタを付け替える必要があるため、先頭からリストをたどる回数が最も多くなる。 ア: 先頭にデータを追加する処理は、先頭ポインタを新データに向け直すだけで済み、リストをたどる必要はほとんどない。 イ: 先頭のデータを削除する処理は、先頭ポインタを2番目のデータに向け直すだけで済み、たどる回数は少ない。 ウ: 末尾にデータを追加する処理は、末尾ポインタを使えば直接末尾ノードにアクセスでき、そこにポインタをつなぐだけで済む。 エ: 末尾のデータを削除する処理は、新たな末尾となる直前のノードを探すために先頭からリストをたどる必要があり、最もたどる回数が多くなるため正解である。 💡 単方向リストでは「後ろ向き」の操作(末尾の削除など、直前ノードの特定が必要な処理)が最もコストが高くなる点を押さえておく。双方向リストならこの問題は解消される。

出典:令和元年度 秋期 応用情報技術者試験 午前 問6 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「アルゴリズムとプログラミング」分野の攻略ポイント

データ構造・アルゴリズム・探索と整列・計算量・擬似言語・プログラム言語・データ記述言語が対象です。擬似言語のトレースは時間はかかるものの、落ち着いて表を書けば必ず正解にたどり着く「確実に取れる」問題です。

アルゴリズムとプログラミングの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(アルゴリズムとプログラミング)の過去問