先頭ポインタと末尾ポインタをもち、多くのデータがポインタでつながった単方向の線形リストの処理のうち、先頭ポインタ、末尾ポイン タ又は各データのポインタをたどる回数が最も多いものはどれか。ここで、単方向のリストは先頭ポインタからつながっているものとし、追加データはポインタ をたどらなくても参照できるものとする。
| ア |
先頭にデータを追加する処理 |
| イ |
先頭のデータを削除する処理 |
| ウ |
末尾にデータを追加する処理 |
| エ |
末尾のデータを削除する処理 |
解答・解説を見る
解答:エ
| ア |
× |
- 先頭ポインタから先頭のデータをたどる。
- 先頭のポインタを追加データのポインタに書き換える。
- 1で得られた情報を追加データのポインタに書き換える。
⇒ポインタをたどる回数:1回 |
| イ |
× |
- 先頭ポインタから先頭のデータをたどる。
- 先頭のデータから次のデータをたどる。
- 2で得られた情報を現在先頭のデータのポインタに書き換える。
⇒ポインタをたどる回数:2回 |
| ウ |
× |
- 末尾ポインタから末尾のデータをたどる。
- 末尾のデータのポインタを追加データに書き換える。追加データのポインタを「nil:無し」にする。
- 末尾のポインタを追加したデータに書き換える。
⇒ポインタをたどる回数:1回 |
| エ |
○ |
- 末尾ポインタから末尾のデータをたどる。
- 1で得たデータがポインタとして得られるまで先頭ポインタからN回ポインタをたどり、末尾の一つ前のデータを得る。
- 末尾の一つ前のポインタを「nil:無し」に書き換え、末尾ポインタを末尾の一つ前に書き換える。
⇒ポインタをたどる回数:N+1回 |