連結リストの末尾操作の計算量

基礎理論難易度: ★★★☆☆

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

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

実装方法1

【実装方法2】 先頭のセルを指すポインタ型の変数 front と、末尾のセルを指すポインタ型の変数 rear を併せもつ。

実装方法2

選択肢実装方法1実装方法2
ほぼ1になるほぼ1になる
ほぼ1になるほぼnに比例する
ほぼnに比例するほぼ1になる
ほぼnに比例するほぼnに比例する
出典: 平成21年度秋期 応用情報技術者 午前 問5