平成22年度秋期 応用情報技術者試験 午前 問5
先頭ポインタと末尾ポインタをもち,多くのデータがポインタでつながった単方向の線形リストの処理のうち,先頭ポインタ,末尾ポインタ又は各データのポインタをたどる回数が最も多いものはどれか。ここで,単方向のリストは先頭ポインタからつながっているものとし,追加するデータはポインタをたどらなくても参照できるものとする。
- ア 先頭にデータを追加する処理
- イ 先頭のデータを削除する処理
- ウ 末尾にデータを追加する処理
- エ 末尾のデータを削除する処理
解答・解説を見る
正解:エ
AI解説
先頭ポインタと末尾ポインタをもつ単方向線形リストでは、先頭への追加・削除、末尾への追加はいずれもポインタを直接参照するだけで済み、たどる回数はごくわずかである。しかし末尾のデータを削除する場合、単方向リストには「前」を指すポインタがないため、先頭から順にたどって末尾の一つ手前のノードを探索する必要があり、最もポインタをたどる回数が多くなる。 ア: 先頭ポインタが直接指す位置に新しいノードを挿入し先頭ポインタを更新するだけでよく、たどる回数は少ない。 イ: 先頭ポインタが指すノードを削除し先頭ポインタを次のノードに更新するだけでよく、たどる回数は少ない。 ウ: 末尾ポインタが指す位置に新しいノードをつなぎ末尾ポインタを更新するだけでよく、たどる回数は少ない。 エ: 正しい。単方向リストには逆方向のポインタがないため、末尾を削除するには先頭から末尾の直前のノードまで順にたどる必要があり、最もたどる回数が多い。 💡 単方向リストの弱点は「後ろ向きに戻れない」こと。末尾側の削除や末尾の直前ノードの特定が必要な操作は、先頭から全走査が必要になる点を押さえておく。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。