令和4年度春期 応用情報技術者試験 午前 問5
リストには,配列で実現する場合とポインタで実現する場合とがある。リストを配列で実現した場合の特徴として,適切なものはどれか。ここで,配列を用いたリストは配列に要素を連続して格納することによってリストを構成し,ポインタを用いたリストは要素と次の要素へのポインタを用いることによってリストを構成するものとする。
- ア リストにある実際の要素数にかかわらず,リストに入れられる要素の最大個数に対応した領域を確保し,実際には使用されない領域が発生する可能性がある。
- イ リストの中間要素を参照するには,リストの先頭から順番に要素をたどっていくことから,要素数に比例した時間が必要となる。
- ウ リストの要素を格納する領域の他に,次の要素を指し示すための領域が別途必要となる。
- エ リストへの挿入位置が分かる場合には,リストにある実際の要素数にかかわらず,要素の挿入を一定時間で行うことができる。
解答・解説を見る
正解:ア
AI解説
配列でリストを実現する場合、あらかじめリストに入れられる最大要素数分の連続した領域を確保しておく必要があり、実際の要素数がそれより少なければ未使用領域が生じる可能性がある。一方で配列は添字により要素へ直接アクセスできる利点を持つ。アがこの特徴を正しく説明している。 ア: 正しい。配列によるリストは最大個数に対応した領域をあらかじめ確保するため、実際の要素数が少ない場合に未使用領域が発生し得る。 イ: 配列は添字によって任意の要素へ直接アクセス(ランダムアクセス)できるため、中間要素の参照に要素数に比例した時間がかかるという特徴は、先頭から順にたどる必要があるポインタ(リンクリスト)方式の特徴である。 ウ: 要素とは別に次の要素を指し示す領域が必要になるのは、ポインタを用いてリストを実現する方式の特徴である。 エ: 挿入位置が分かれば要素数によらず一定時間で挿入できるのは、要素の移動が不要なポインタ(リンクリスト)方式の特徴であり、配列では挿入位置より後ろの要素をずらす必要があるため一定時間では行えない。 💡 配列方式は「連続領域確保・直接アクセス可能・挿入削除は要素移動が必要」、ポインタ方式は「都度メモリ確保・順次アクセスのみ・挿入削除は一定時間」という対比で覚えると整理しやすい。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。