リストには、配列で実現する場合とポインタで実現する場合とがある。リストを配列で実現した場合の特徴として、適切なものはどれか。ここで、配列を用いたリストは配列に要素を連続して格納することによってリストを構成し、ポインタを用いたリストは要素と次の要素へのポインタを用いることによってリストを構成するものとする。
配列リストは直接参照が速いが領域は固定で挿入が遅い
選択肢
- アリストにある実際の要素数にかかわらず、リストに入れられる要素の最大個数に対応した領域を確保し、実際には使用されない領域が発生する可能性がある。
- イリストの中間要素を参照するには、リストの先頭から順番に要素をたどっていくことから、要素数に比例した時間が必要となる。
- ウリストの要素を格納する領域の他に、次の要素を指し示すための領域が別途必要となる。
- エリストへの挿入位置が分かる場合には、リストにある実際の要素数にかかわらず、要素の挿入を一定時間で行うことができる。
正解と解説
正解:ア リストにある実際の要素数にかかわらず、リストに入れられる要素の最大個数に対応した領域を確保し、実際には使用されない領域が発生する可能性がある。
配列でリストを実現すると、要素は連続領域に置かれるため添字による直接アクセスができる反面、あらかじめ最大要素数分の領域を確保しておく必要がある。実際の要素数が少ないときは未使用の領域が無駄になる。挿入・削除では後続要素をずらす必要があり、要素数に比例した時間がかかる点も配列の弱点である。
選択肢ごとの解説
- ア正解。配列は最大個数分の領域を先に確保するため、未使用領域が生じ得る。
- イ先頭からたどる必要があるのはポインタで実現した場合。配列は添字で直接参照できる。
- ウ次要素を指す領域が要るのはポインタ方式の特徴。配列は並び順が位置で決まる。
- エ挿入位置が分かっていても後続をずらす必要があり一定時間にはならない。これはポインタ方式の利点。
同じ分野の他の問題
- 図の2分探索木に1と0の二つの要素を順に追加したAVL木として,適切なものはどれか。2025年度 春期 午前 問6
- A,B,Cの順序で入力されるデータがある。各データについてスタックへの挿入と取出しを1回ずつ行うことができる場合,データ…2016年度 春期 午前 問5
- 次の2分探索木から要素12を削除したとき、その位置に別の要素を移動するだけで2分探索木を再構成するには、削除された要素の…2024年度 秋期 午前 問5
- 各ノードがもつデータを出力する再帰処理f(ノードn)を定義した。この処理を、図の2分木の根(最上位のノード)から始めたと…2024年度 春期 午前 問6
- 双方向リストを三つの一次元配列elem[i]、next[i]、prev[i]の組で実現する。双方向リストが図の状態のとき…2023年度 秋期 午前 問5
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。