配列の配列
配列を要素として持つ配列である。以下の例は、整数型の一次元配列 (子の配列)を要素として持つ一次元配列 (親の配列) value である。 例えば、valueの3行1列の要素は31である。 なお、 配列の要素番号は1から始まる。

「配列の配列」のイメージ図は、以下の通りである。つまり、親の配列には子の配列への参照が格納されており、親の配列を経由して、子の配列の要素にアクセスする。また、子の配列には名称がなく、直接アクセスすることは不可能である。

親の配列(行)を縦方向に描く点がポイントである。
配列の配列と二次元配列の違いは、以下の通りである。
・配列の配列は、図にすると四角形にならないことがある。 つまり、子の配列の要素数はまちまちで、文字どおりギザギザの配列になることがある。配列の配列は「[ ][ ]」で表す。例えば 「value[2] [1]」と表す。
・二次元配列は、図にすると四角形になる。つまり各行の要素数はすべて同じ。また、各列の要素数はすべて同じ。二次元配列は「[ , ]」で表す。 例えば 「value[2,1]」と表す。
次の例では 「value [1] の末尾にvalue [2] [1] の値を追加する」により、value [1] の末尾 (value[1][1]とvalue[1][2]には値が格納されているので、その次のvalue[1][3]) に, value[2][1]の値21を追加する。

次の例では 「value [1] の末尾に value [2, 1]の値を追加する」により、 value[1]の末尾 (value[1,1]とvalue[1,2]には値が格納されているので、その次の value [1,3]), value[2,1]の値21を追加する。

次の例では 「value [3] の末尾に value [2] [3] の値を追加する」 により、 value[3] (要素数0で、要素がない) の末尾(要素がないため、value[3][1])に、value[2][3]の値23を追加する。

3種類の配列
3種類の配列の違いは、以下の通りである。
・一次元配列とは、同じ型の値を横一列に複数個並べて格納できるデータ構造。 一次元配列は「[ ]」 で表す。 例えば「value[2]」と表す。

・二次元配列とは、同じ型の値を縦と横に複数個並べて格納できるデータ構造。
二次元配列は「[ , ]」 で表す。 例えば、「value [2, 1]」 と表す。

・配列の配列とは、配列を要素としてもつ配列。 配列の配列は 「[ ][ ]」で表す。例えば 「value [2] [1]」と表す。

二次元配列図
二次元配列の実行前の例を作ったり、 トレースしたりするために、 二次元配列の図を描く。 また、 配列の配列についても、二次元配列と同じ方法で描く。 なお、下記の例の配列の要素番号は1から始まる。

二次元配列図はスペースの都合上、トレース表の1行1行に描けない。 そのため、別の場所に二次元配列図を描き、 そこにプログラムに沿って、値を追記していくとよいだろう。
(参考)
情報処理教科書 出るとこだけ!基本情報技術者[科目B]第4版 橋本 祐史 (著) 翔泳社


コメント