メインコンテンツへスキップ
応用情報技術者2009年度 秋期午前問 5

2009年度 秋期 応用情報技術者 午前 問5

難度標準

n個の要素x₁,x₂,…,xₙから成る単方向の連結リストに対して、新たな要素xₙ₊₁の末尾への追加に要する時間をf(n)とし、末尾の要素xₙの削除に要する時間をg(n)とする。nが非常に大きいとき、実装方法1と実装方法2におけるg(n)/f(n)の挙動として、適切なものはどれか。

〔実装方法1〕先頭のセルを指すポインタ型の変数frontだけをもつ。

front → x₁ → x₂ → … → xₙ

〔実装方法2〕先頭のセルを指すfrontと、末尾のセルを指すrearを併せもつ。

front → x₁ → x₂ → … → xₙ ← rear

各セルのポインタは次のセルを指し、末尾の次は空である。

選択肢

解説

結論 → 詳細 → 補足 の 3 層構成

展開
結論Layer 1

図のリストは、各セルが次のセルだけを指す単方向連結リストです。

詳細Layer 2
展開

実装方法1では末尾への追加も削除も、frontから末尾付近までたどる必要があります。どちらも処理時間の主要部分はnに比例する走査なので、g(n)/f(n)はほぼ1です。実装方法2ではrearから末尾へ直接追加でき、f(n)はほぼ一定になります。一方、削除では末尾の一つ前のセルのポインタを変更する必要があり、rearから逆向きにはたどれないため先頭から走査します。g(n)はnに比例し、その比もほぼnに比例するのでイです。

この解説は?
AI生成

解説は公式の問題文・公式解答を基に作成しています。 事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があるため、 重要な判断は必ずリンク先の公式資料でご確認ください。

最終更新:

検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

分野「アルゴリズムとプログラミング」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
計算量(O 記法)・基本データ構造・典型アルゴリズム(探索・整列)・再帰の挙動を読む力。
学習の進め方
擬似コードを実際にトレースして変数の遷移を表に書き出す習慣を付ける。スタック/キュー/木の図示が定着の鍵。
関連キーワード
計算量二分探索クイックソート再帰スタックキュー木構造
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

関連する問題

アルゴリズムとプログラミング の他の問題

他試験区分の同分野問題

応用情報技術者 と共通カリキュラムの他区分で「アルゴリズムとプログラミング」分野を演習する

他年度の「アルゴリズムとプログラミング」問題

応用情報技術者 の同じ分野を年度をまたいで演習する

応用情報技術者 の学習ガイド