連結リストの末尾操作の計算量
基礎理論難易度: ★★★☆☆
n個の要素 x₁, x₂, …, xₙ から成る連結リストに対して、新たな要素 xₙ₊₁ の末尾への追加に要する時間を f(n) とし、末尾の要素 xₙ の削除に要する時間を g(n) とする。n が非常に大きいとき、実装方法1と実装方法2における g(n)/f(n) の挙動として、適切なものはどれか。
【実装方法1】 先頭のセルを指すポインタ型の変数 front だけをもつ。

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

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