SMITサービスマネージャ試験 午前Ⅰ

令和4年度春期 ITサービスマネージャ 午前Ⅰ 問2

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

リストには、配列で実現する場合とポインタで実現する場合とがある。リストを配列で実現した場合の特徴として、適切なものはどれか。ここで、配列を用いたリストは配列に要素を連続して格納することによってリストを構成し、ポインタを用いたリストは要素と次の要素へのポインタを用いることによってリストを構成するものとする。

選択肢

  1. ア
    リストにある実際の要素数にかかわらず、リストに入れられる要素の最大個数に対応した領域を確保し、実際には使用されない領域が発生する可能性がある。
  2. イ
    リストの中間要素を参照するには、リストの先頭から順番に要素をたどっていくことから、要素数に比例した時間が必要となる。
  3. ウ
    リストの要素を格納する領域の他に、次の要素を指し示すための領域が別途必要となる。
  4. エ
    リストへの挿入位置が分かる場合には、リストにある実際の要素数にかかわらず、要素の挿入を一定時間で行うことができる。
解き方のヒントを見る

扱う条件と判断対象をそろえる

データの扱いに関する問題では、まず何を前提として考えるかを整理しましょう。判断したい内容と、その判断に関係する条件を分けて捉え、途中で前提が変わっていないか確かめることが大切です。

この問題で問われていること

着目するのは、判断の前提がそろっているかという一点です。何について考えているのかを言葉にし、与えられた条件のうち、その判断に関わるものを確認してから、同じ前提を保って考えを進めましょう。

視点

前提とは、考える際に出発点とする条件です。自分で補った想定と、与えられた条件を区別しておくと、判断の途中で前提がずれるのを防ぎやすくなります。

確認ポイント

  • 判断に使う前提を言葉にできていますか
  • 与えられていない条件を補っていませんか
  • 考える途中で前提を変えていませんか
正解と解説を見る

正解

ア

解説

正解はアです。配列を用いたリストでは、格納できる最大個数に対応した領域を確保するため、実際の要素数が少ない場合に未使用領域が生じる可能性があります。

理由

配列を用いたリストは、確保した配列の領域に要素を連続して格納します。格納できる最大個数と、現在格納している要素数は別です。実際の要素数が最大個数より少なければ、その差に対応する領域は未使用になります。この可能性を述べているアが適切です。

比較

配列では、参照したい要素の位置から格納位置を求められ、次の要素を指すポインタも不要です。一方、ポインタを用いたリストでは、先頭からポインタを順にたどって要素を参照し、各要素に次の要素へのポインタを保持します。また、配列の途中への挿入では、連続した格納を保つために後続要素の移動が必要なので、位置が分かるだけでは一定時間で挿入できるとはいえません。

選択肢ア(正解)

これは正解だよ。配列を用いたリストでは、格納できる最大個数に対応する領域をあらかじめ確保する。実際の要素数がその最大個数より少なければ、確保した領域の一部は使われない。したがって、未使用領域が発生する可能性があるという記述は適切である。

選択肢イ

これは不正解だよ。配列では要素を連続して格納するので、参照したい要素の位置が分かれば、先頭の位置と要素の大きさから格納位置を求めて直接参照できる。先頭から順番にたどる必要があるという説明は、次の要素へのポインタを用いたリストの特徴である。

選択肢ウ

これは不正解だよ。配列では要素の格納位置が連続しているので、次の要素へのポインタを各要素に持たせる必要はない。選択肢が述べる、要素の領域に加えて次の要素を指す領域が必要になるという特徴は、ポインタを用いたリストに当てはまる。

選択肢エ

これは不正解だよ。配列に要素を連続して格納する場合、途中へ挿入するには、挿入位置以降の要素を後ろへずらして空きを作る必要がある。移動する要素数に応じて時間が増えるため、挿入位置が分かっていても、実際の要素数にかかわらず一定時間で挿入できるとはいえない。

学習のポイント

配列とポインタによるリストを、領域の確保、要素の参照、挿入時の作業という観点で比較しましょう。

出典:独立行政法人 情報処理推進機構(IPA)令和4年度春期 ITサービスマネージャ試験 午前Ⅰ 問2(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針