アルゴリズムとプログラミング

基本情報技術者試験要素数nの単方向連結リストにおいて、先頭ノードへのポインタが分かっているとき、リストの先頭に新しい要素を1個挿入…

テクノロジ系アルゴリズムとプログラミング計算問題難易度:normal
要素数nの単方向連結リストにおいて、先頭ノードへのポインタが分かっているとき、リストの先頭に新しい要素を1個挿入する処理の計算量はどれか。
O(1)
O(log n)になる
O(n)で線形時間
O(n^2)に達する
正解
ア.O(1)

連結リストの先頭挿入は、新ノードのnextを現在の先頭に向け、リストの先頭ポインタを新ノードに更新するだけで完了する。要素数nに関係なく一定回数の操作で済むためO(1)で正しい。

?選択肢ごとの解説

ア ○連結リストの先頭挿入は、新ノードのnextを現在の先頭に向け、リストの先頭ポインタを新ノードに更新するだけで完了する。要素数nに関係なく一定回数の操作で済むためO(1)で正しい。
イ ×O(log n)は探索範囲を半減する二分探索などの量であり、ポインタ付け替えだけの先頭挿入には対数的な分割が存在しないため当てはまらない。
ウ ×O(n)は先頭が分からず先頭まで走査する場合や末尾挿入で末尾までたどる場合の量であり、先頭ポインタ既知の先頭挿入には不要な走査である。
エ ×O(n^2)は二重ループ相当の量で、単純な1要素の先頭挿入とはかけ離れており、過大な見積りである。
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。

基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。

登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。

作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-a3-0129

【基本情報技術者試験】要素数nの単方向連結リストにおいて、先頭ノードへのポインタが…|正解「O(1)」|ukamiru 過去問