高度情報処理技術者試験・情報処理安全確保支援士試験 令和4年度 春期 午前I 問2
リストには、配列で実現する場合とポインタで実現する場合とがある。リストを配列で実現した場合の特徴として、適切なものはどれか。ここで、配列を用いたリストは配列に要素を連続して格納することによってリストを構成し、ポインタを用いたリストは要素と次の要素へのポインタを用いることによってリストを構成するものとする。
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ア
配列でリストを実現する場合、要素を添字の順に連続した記憶領域へ格納します。格納できる最大個数をあらかじめ決め、その個数分の領域をまとめて確保する方式では、実際の要素数が最大個数より少ないと、確保した領域の一部が使用されません。例えば、最大100個の配列を用意して10個だけ格納すれば、残り90個分は未使用です。したがって、最大個数に対応する領域を確保することで未使用領域が生じる可能性を述べたアが正解です。
イの説明は誤りです。これは主にポインタを用いた連結リストの特徴です。配列では先頭アドレスと添字から格納位置を計算できるため、中間要素にも一定時間で直接アクセスできます。ウの説明も誤りです。次の要素を指すポインタ用の領域が別途必要になるのは、ポインタを用いた連結リストです。配列では要素が連続しているので、各要素に次の位置を記録する必要はありません。エの説明も誤りです。配列の中間に要素を挿入すると、挿入位置より後ろの要素を一つずつ移動する必要があり、要素数に応じた時間が掛かります。位置が分かっていれば一定時間で挿入できるのは、挿入箇所の直前の要素も分かっている連結リストの特徴です。
【ポイント】 ・配列は添字による参照が高速ですが、挿入や削除では要素の移動が発生します。 ・連結リストはポインタ分の領域が必要ですが、リンクの付替えによって挿入や削除ができます。 ・配列では最大要素数や領域拡張の方法も設計上の重要事項です。
出典:令和4年度 春期 高度情報処理技術者試験・情報処理安全確保支援士試験 午前I 問2
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の30問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる