戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2009年 秋期 午前205


問題文

個の要素 から成る連結リストに対して、新たな要素 の末尾への追加に要する時間をとし、末尾の要素の削除に要する時間をとする。 が非常に大きいとき、実装方法1と実装方法2におけるの挙動として、適切なものはどれか。
応用情報技術者 2009年 秋期 午前2 問05の問題画像応用情報技術者 2009年 秋期 午前2 問05の選択肢の画像

選択肢

(正解)

連結リストの末尾追加と削除時間の比率【午前2 解説】

正解の理由

が正解です。実装方法1は末尾ポインタがないため、末尾追加も削除もリストの先頭から末尾まで探索が必要で、で比率はほぼ1になります。一方、実装方法2は末尾ポインタrearがあるため、末尾追加はで済みますが、末尾削除は先頭から末尾の一つ前を探す必要がありです。したがってに比例します。

解法ステップ

  1. 実装方法1の構造を確認し、末尾ポインタがないことを理解する。
  2. 末尾追加は末尾まで探索が必要で、末尾削除も同様に
  3. 実装方法2は末尾ポインタrearがあり、追加はで可能。
  4. しかし削除は単方向リストのため、末尾の一つ前を探す必要があり
  5. それぞれのの時間計算量を比較し、比率を求める。

選択肢別の誤答解説

  • ア:両方とも比率が1になるとあるが、実装方法2は追加がで削除がなので誤り。
  • イ:正解。実装方法1は比率1、実装方法2は比率に比例。
  • ウ:実装方法1が比率に比例は誤り。末尾追加も削除もで比率は1。
  • エ:両方とも比率に比例は誤り。実装方法1は比率1。

よくある誤解

末尾ポインタがあれば末尾削除もになると誤解しがちですが、単方向リストでは末尾の一つ前の要素を知る手段がなく、削除はです。

補足コラム

単方向連結リストで末尾操作を高速化するには、末尾ポインタを持つことが重要です。ただし、末尾削除は単方向リストでは前の要素を辿る必要がありです。双方向リストならば末尾削除もで可能です。

FAQ

Q: 末尾ポインタがあれば末尾削除はなぜにならないのですか?
A: 単方向リストでは末尾の一つ前の要素を知る手段がなく、削除時に先頭から辿る必要があるためです。
Q: 末尾追加はなぜ実装方法1でかかるのですか?
A: 末尾ポインタがないため、追加時に先頭から末尾まで辿って最後に追加する必要があるからです。

関連キーワード: 連結リスト、単方向リスト、末尾追加、末尾削除、時間計算量、ポインタ、データ構造
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について