基本情報技術者試験 - 令和7年1月修了 - 問5
| ア | 要素を更新する場合,ポインタを順番にたどるだけなので,処理時間は短い。 |
|---|---|
| イ | 要素を削除する場合,削除した要素から後ろにある全ての要素を前に移動するので,処理時間は長い。 |
| ウ | 要素を参照する場合,ランダムにアクセスできるので,処理時間は短い。 |
| エ | 要素を挿入する場合,数個のポインタを書き換えるだけなので,処理時間は短い。 |
答え : エ
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
解説 :
「配列」と「連結リスト」は,どちらも複数のデータをまとめて扱うためのデータ構造ですが,得意な処理が異なります。配列はメモリ上に要素が連続して並んでいるため,何番目の要素かが分かればすぐにその位置を計算してアクセスできる「ランダムアクセス」が得意です。
一方,連結リストは各要素(ノード)が次の要素へのポインタ(矢印のような参照情報)を持つことでつながっており,途中への要素の挿入や削除が得意です。挿入するときは,前後のノードが持つポインタの向き先を数個書き換えるだけで済み,他の要素を移動させる必要がないため,処理時間が短くなります。従って,正解は「エ」です。
「ア」は,連結リストで要素を更新するには,先頭から順にポインタをたどって目的の要素を探す必要があり,この探索自体に時間がかかります。「イ」は,連結リストでは要素を削除しても他の要素を移動させる必要はなく,これは配列の特徴の説明になっています。「ウ」は,連結リストは順にたどる必要があるためランダムアクセスができず,これはむしろ配列の長所です。
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
解説 :
「配列」と「連結リスト」は,どちらも複数のデータをまとめて扱うためのデータ構造ですが,得意な処理が異なります。配列はメモリ上に要素が連続して並んでいるため,何番目の要素かが分かればすぐにその位置を計算してアクセスできる「ランダムアクセス」が得意です。
一方,連結リストは各要素(ノード)が次の要素へのポインタ(矢印のような参照情報)を持つことでつながっており,途中への要素の挿入や削除が得意です。挿入するときは,前後のノードが持つポインタの向き先を数個書き換えるだけで済み,他の要素を移動させる必要がないため,処理時間が短くなります。従って,正解は「エ」です。
「ア」は,連結リストで要素を更新するには,先頭から順にポインタをたどって目的の要素を探す必要があり,この探索自体に時間がかかります。「イ」は,連結リストでは要素を削除しても他の要素を移動させる必要はなく,これは配列の特徴の説明になっています。「ウ」は,連結リストは順にたどる必要があるためランダムアクセスができず,これはむしろ配列の長所です。