平成24年度 春期 基本情報技術者試験 午前 問7
テクノロジ/アルゴリズム多数のデータが単方向リスト構造で格納されている。このリスト構造には,先頭ポインタとは別に,末尾のデータを指し示す末尾ポインタがある。次の操作のうち,ポインタを参照する回数が最も多いものはどれか。
出典:平成24年度 春期 基本情報技術者試験 午前 問7
- アリストの先頭にデータを挿入する。
- イリストの先頭のデータを削除する。
- ウリストの末尾にデータを挿入する。
- エリストの末尾のデータを削除する。
正解:エ
解説
先頭ポインタと末尾ポインタをもつ単方向リストでは,先頭への挿入・削除や末尾への挿入は,先頭ポインタや末尾ポインタを直接使うだけで済み,参照回数は少なくて済みます。しかし末尾のデータを削除する場合は,末尾の一つ前のノードを新しい末尾にする必要があるにもかかわらず,単方向リストには前方向へのポインタがないため,先頭から順に次ノードのポインタを1つずつたどって末尾の直前のノードを探し出さなければならず,参照回数が最も多くなります。
選択肢ごとの解説
- ア誤り。先頭ポインタを使って新しいノードを追加し先頭ポインタを更新するだけで済み,参照回数は少数です。
- イ誤り。先頭ポインタが指すノードを削除して次のノードを新しい先頭にするだけで済み,参照回数は少数です。
- ウ誤り。末尾ポインタが指すノードの次に新しいノードをつなぎ末尾ポインタを更新するだけで済み,参照回数は少数です。
- エ正しい。前方向のポインタがないため,先頭から順にたどって末尾の直前のノードを探す必要があり,ポインタの参照回数が最も多くなります。