「資格試験/情報処理技術者試験/高度共通午前1/過去問2012年秋午前1/問3回答」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
* 正解 ア [[問4へ>資格試験/情報処理技術者試験/高度共通午前1/過去問2012年秋午前1/問4]]
#include(資格試験/情報処理技術者試験/高度共通午前1/過去問2012年秋午前1/問3)
* 解説
スタックとは、最後に入れたものが最初に取り出せる、後入れ先出し方式のデータ構造です。
スタックを配列で実現すると言う事は、以下のイメージのように「入れる時には、データの末尾がどこか分かる必要がある」「出す時にも、データの末尾が分かる必要がある」ので、アの「スタックに最後に入った要素を示す添字の変数」が正解です。
配列で作ったスタックに4つのデータが入っている場合、添字の[0]から[3]までデータが入ることになります。
>添字:[0][1][2][3][4][5][6][7][8][9]
>配列:[*][*][*][*][ ][ ][ ][ ][ ][ ]
★ここにデータを追加する場合に必要な変数はなんでしょうか?
>添字:[0][1][2][3][4][5][6][7][8][9]
>配列:[*][*][*][*][ ][ ][ ][ ][ ][ ]
>&bold(){変数:3(最後に入った要素を示す添字)}
変数に最後に入った要素を示す添字があれば、「次は配列の[4]にデータを入れればいいんだ」と分かります。
ちなみに、データを追加した場合は以下のようになります。
>添字:[0][1][2][3][ 4 ][5][6][7][8][9]
>配列:[*][*][*][*][&color(red){&bold(){*}}][ ][ ][ ][ ][ ]
>変数:&color(red){&bold(){4}}(最後に入った要素を示す添字)
配列に追加したデータが入り、変数にはその添字を設定します。
★次はデータを取り出す場合に必要な変数です。
>添字:[0][1][2][3][4][5][6][7][8][9]
>配列:[*][*][*][*][ ][ ][ ][ ][ ][ ]
>&bold(){変数:3(最後に入った要素を示す添字)}
やはり、必要なのは「最後に入った要素を示す添字」の変数です。最後の要素の場所がわからなければ、最後の要素を取り出す事ができないためです。
実際にデータを取り出すと以下のようになります。
>添字:[0][1][2][3][4][5][6][7][8][9]
>配列:[*][*][*][ ][ ][ ][ ][ ][ ][ ]
>変数:&color(red){&bold(){2}}(最後に入った要素を示す添字)
データを取り出した分だけ、変数の添字も減らさないと次にデータを追加したり減らすときに誤動作が発生します。
以上により、アの「スタックに最後に入った要素を示す添字の変数」が正解となります。
[[問4へ>資格試験/情報処理技術者試験/高度共通午前1/過去問2012年秋午前1/問4]]
[[問3へ>資格試験/情報処理技術者試験/高度共通午前1/過去問2012年秋午前1/問3]]
* 正解 ア [[次の問題へ>資格試験/情報処理技術者試験/高度共通午前1/過去問2012年秋午前1/問4]]
#include(資格試験/情報処理技術者試験/高度共通午前1/過去問2012年秋午前1/問3)
* 解説
スタックとは、最後に入れたものが最初に取り出せる、後入れ先出し方式のデータ構造です。
スタックを配列で実現すると言う事は、以下のイメージのように「入れる時には、データの末尾がどこか分かる必要がある」「出す時にも、データの末尾が分かる必要がある」ので、アの「スタックに最後に入った要素を示す添字の変数」が正解です。
配列で作ったスタックに4つのデータが入っている場合、添字の[0]から[3]までデータが入ることになります。
>添字:[0][1][2][3][4][5][6][7][8][9]
>配列:[*][*][*][*][ ][ ][ ][ ][ ][ ]
★ここにデータを追加する場合に必要な変数はなんでしょうか?
>添字:[0][1][2][3][4][5][6][7][8][9]
>配列:[*][*][*][*][ ][ ][ ][ ][ ][ ]
>&bold(){変数:3(最後に入った要素を示す添字)}
変数に最後に入った要素を示す添字があれば、「次は配列の[4]にデータを入れればいいんだ」と分かります。
ちなみに、データを追加した場合は以下のようになります。
>添字:[0][1][2][3][ 4 ][5][6][7][8][9]
>配列:[*][*][*][*][&color(red){&bold(){*}}][ ][ ][ ][ ][ ]
>&bold(){変数:&color(red){&bold(){4}}(最後に入った要素を示す添字)}
配列に追加したデータが入り、変数にはその添字を設定します。
★次はデータを取り出す場合に必要な変数です。
>添字:[0][1][2][3][4][5][6][7][8][9]
>配列:[*][*][*][*][ ][ ][ ][ ][ ][ ]
>&bold(){変数:3(最後に入った要素を示す添字)}
やはり、必要なのは「最後に入った要素を示す添字」の変数です。最後の要素の場所がわからなければ、最後の要素を取り出す事ができないためです。
実際にデータを取り出すと以下のようになります。
>添字:[0][1][2][3][4][5][6][7][8][9]
>配列:[*][*][*][ ][ ][ ][ ][ ][ ][ ]
>&bold(){変数:&color(red){&bold(){2}}(最後に入った要素を示す添字)}
データを取り出した分だけ、変数の添字も減らさないと次にデータを追加したり減らすときに誤動作が発生します。
以上により、アの「スタックに最後に入った要素を示す添字の変数」が正解となります。
[[前の問題へ>資格試験/情報処理技術者試験/高度共通午前1/過去問2012年秋午前1/問2]] [[次の問題へ>資格試験/情報処理技術者試験/高度共通午前1/過去問2012年秋午前1/問4]]