SAシステムアーキテクト試験 午前Ⅰ

平成24年度秋期 システムアーキテクト 午前Ⅰ 問3

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

問題

配列を用いてスタックを実現する場合の構成要素として,最低限必要なものはどれか。

選択肢

  1. ア
    スタックに最後に入った要素を示す添字の変数
  2. イ
    スタックに最初に入った要素と最後に入った要素を示す添字の変数
  3. ウ
    スタックに一つ前に入った要素を示す添字の変数を格納する配列
  4. エ
    スタックの途中に入っている要素を示す添字の変数
解き方のヒントを見る

構成要素の役割を見分ける視点

配列を使った構造を考えるときは、保存場所そのものと、追加・取り出しなどの操作を管理する仕組みを分けて捉え、各要素がどの役割を担うかを整理し、全体の関係を確認しましょう。

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

選択肢を読む際は、各候補が構造全体のどの役割を担うと説明しているか、その責任分担と情報の流れに矛盾がないかという一点に注目し、根拠を持って丁寧に比較しましょう。

視点

構造を理解するときは、個々の名称や見た目だけで判断せず、各要素の役割と、要素どうしの関係がどのように説明されているかを対応づけて整理します。

確認ポイント

  • 各要素が担う役割を、他の要素と区別して整理する
  • 要素どうしの責任分担に矛盾がないか確認する
  • 説明全体の情報の流れが自然につながるか見直す
正解と解説を見る

正解

ア

解説

配列でスタックを実現するには、後入れ先出しの操作対象となる位置を追跡できればよく、最初の要素や途中の要素を個別に管理する情報までは必要ない。

理由

スタックは後入れ先出しのデータ構造であり、要素の追加と取出しは同じ端で行う。配列上でその端がどこにあるかを示せれば、次に操作する要素を特定できる。

比較

最初に入った要素や途中の要素を別々に追跡する必要はない。配列に格納された要素の位置を管理する情報があれば、スタックの基本操作を実現できる。

選択肢ア(正解)

これは正解だよ。配列でスタックを表すときは、要素を入れる位置と取り出す位置を管理できればよい。後入れ先出しの規則では、最後に格納した要素の位置が次の操作対象になるため、その位置を示す添字の変数が最低限必要になる。

選択肢イ

これは不正解だよ。スタックでは、最初に入った要素の位置を常に別管理しなくても、最後に入った要素の位置を追跡すれば基本操作を行える。したがって、最初と最後の両方を示す添字の変数を最低限そろえる必要はない。

選択肢ウ

これは不正解だよ。スタックの要素は配列に順番に格納されるため、一つ前に入った要素の添字を専用の配列へ保存しなくても位置関係を扱える。過去の添字を履歴として別配列に持つことは、最低限の構成要素ではない。

選択肢エ

これは不正解だよ。スタックの基本操作では、途中にある要素を直接指定する必要はなく、後から入った要素から順に扱う。途中の要素を示す添字を管理しても、追加や取出しの対象を決めるための最低限の情報にはならない。

学習のポイント

スタックの操作対象と添字による位置管理の関係を理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成24年度秋期 システムアーキテクト試験 午前Ⅰ 問3(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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