問題

問7 多数のデータが単方向リスト構造で格納されている。このリスト構造には、先頭ポインタとは別に、末尾のデータを指し示す末尾ポインタがある。次の操作のうち、ポインタを参照する回数が最も多いものはどれか。

ア リストの先頭にデータを挿入する。
イ リストの先頭のデータを削除する。
ウ リストの末尾にデータを挿入する。
エ リストの末尾のデータを削除する。

解説と解答

 先頭ポインタと末尾ポインタを持つ単方向リストを図でイメージすると次のようになります。

 選択肢の操作をするためにはどうすればよいか、そのためにはどのポインタを参照する必要があるかを考えます。赤が書き換えるポインタ、青がそのために参照するポインタです。

ア リストの先頭にデータを挿入するには、先頭ポインタと挿入したデータの次ポインタを書き換えます。そのために、先頭のポインタを参照する必要があります。

イ リストの先頭のデータを削除するには、先頭ポインタを書き換えます。そのために、先頭と次のデータのポインタを参照する必要があります。

ウ リストの末尾にデータを挿入するには、現在の末尾のデータのポインタと末尾ポインタを書き換えます。そのために、末尾ポインタを参照する必要があります。

[画像のクリックで拡大表示]

エ リストの末尾のデータを削除するには、現在の末尾の一つ前のデータのポインタと末尾ポインタを書き換えます。そのために、先頭から末尾の一つ前のデータまで順にたどって参照していく必要があります。

 以上のことから、ポインタを参照する回数が最も多いのはエです。

城田 比佐子(しろた・ひさこ)
アイティ・アシストのインストラクター(プロスタッフ)。著書に『3週間完全マスター 基本情報技術者 2012年版』『3週間完全マスター 応用情報技術者 2012年版』などがある。