イが正解です。連結リストにおいて、末尾への要素追加は、リストの末尾へのポインタを更新するだけで済むため、要素数nによらず一定時間、すなわち「ほぼ1」で実行できます。これは、末尾ノードへの参照が直接保持されている場合(双方向リストや末尾ポインタを持つ単方向リスト)の標準的な実装です。一方、末尾要素の削除は、末尾から2番目の要素を見つけ、そのポインタをNULLにする必要があります。単方向リストの場合、末尾から2番目の要素を見つけるには、リストの先頭から順にn-1個の要素をたどる必要があり、これは要素数nに比例する時間、すなわち「ほぼn」かかります。
読み込み中...