平成22年度秋期 応用情報技術者試験 午前 問5

分野:アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語)|実際に出題されたIPA過去問題

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

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

正解:エ

AI解説

先頭ポインタと末尾ポインタをもつ単方向線形リストでは、先頭への追加・削除、末尾への追加はいずれもポインタを直接参照するだけで済み、たどる回数はごくわずかである。しかし末尾のデータを削除する場合、単方向リストには「前」を指すポインタがないため、先頭から順にたどって末尾の一つ手前のノードを探索する必要があり、最もポインタをたどる回数が多くなる。 ア: 先頭ポインタが直接指す位置に新しいノードを挿入し先頭ポインタを更新するだけでよく、たどる回数は少ない。 イ: 先頭ポインタが指すノードを削除し先頭ポインタを次のノードに更新するだけでよく、たどる回数は少ない。 ウ: 末尾ポインタが指す位置に新しいノードをつなぎ末尾ポインタを更新するだけでよく、たどる回数は少ない。 エ: 正しい。単方向リストには逆方向のポインタがないため、末尾を削除するには先頭から末尾の直前のノードまで順にたどる必要があり、最もたどる回数が多い。 💡 単方向リストの弱点は「後ろ向きに戻れない」こと。末尾側の削除や末尾の直前ノードの特定が必要な操作は、先頭から全走査が必要になる点を押さえておく。

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

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

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

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

同じ分野(アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語))の過去問