平成29年度 春期 午前 問4
データ構造
配列を用いて実現する場合の特徴
データ構造の一つであるリストは,配列を用いて実現する場合と,ポインタを用いて実現する場合とがある。配列を用いて実現する場合の特徴はどれか。ここで,配列を用いたリストは,配列に要素を連続して格納することによって構成し,ポインタを用いたリストは,要素から次の要素へポインタで連結することによって構成するものとする。
- ア位置を指定して,任意のデータに直接アクセスすることができる。
- イ並んでいるデータの先頭に任意のデータを効率的に挿入することができる。
- ウ任意のデータの参照は効率的ではないが,削除や挿入の操作を効率的に行える。
- エ任意のデータを別の位置に移動する場合,隣接するデータを移動せずにできる。
答えと解説を見る
✓ これが正解ア位置を指定して,任意のデータに直接アクセスすることができる。
解説
配列なら位置を指定して、途中の要素へ直接たどり着けます。
配列で作ったリストは、要素を続きの場所へ並べて置きます。何番目かが分かれば、先頭からの距離を掛け算で出せました。そこへ一気に飛べるので、途中の要素へ直接たどり着けます。何番目であっても、かかる手間は変わりません。だから位置を指定して直接読める、と述べた肢が当たりました。ポインタを使ったリストは、次の要素の場所を各要素が持っています。先頭から順にたどる必要があるので、途中へは飛べません。そのかわり、つなぎ替えるだけで割り込ませられます。先頭へ割り込ませる手際が良いのは、こちらの側でした。取り除くときも、前後をつなぎ直せば済みます。配列では、割り込ませた後ろを全部ずらす必要がありました。別の場所へ移すときも、隣の要素が動きます。飛べるか、つなぎ替えられるか。二つは裏返しの関係でした。
ほかの選択肢はなぜ違うのか
- イ並んでいるデータの先頭に任意のデータを効…:先頭へ効率よく割り込ませられる、と述べています。これはつなぎ手を使った側の長所でした。配列では後ろの要素を全部ずらします。要素が多いほど手間が増えました。割り込みは得意ではありません。逆の側の特徴です。
- ウ任意のデータの参照は効率的ではないが,削…:参照は不得手だが、出し入れは得意だと述べています。これもつなぎ手を使った側の性質でした。配列は逆に、参照こそ得意です。位置から場所を計算できるからでした。出し入れのほうが不得手になります。長所と短所が入れ替わっています。
- エ任意のデータを別の位置に移動する場合,隣…:隣を動かさずに移せる、と述べています。つなぎ手なら、つなぎ替えるだけで済みました。配列では続きの場所に並んでいます。間を空けたり詰めたりする必要が出ます。隣の要素が必ず動きました。配列では成り立ちません。詰め直しが必ず起こります。
出典:平成29年度 春期 基本情報技術者試験 午前 問4
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)