HOME»基本情報技術者平成18年秋期»午前問13
基本情報技術者平成18年秋期 午前問13
問13
表は,配列を用いた連結セルによるリストの内部表現であり,リスト[東京,品川,名古屋,新大阪]を表している。このリストを[東京,新横浜,名古屋,新大阪]に変化させる操作はどれか。ここで,A(i,j)は表の第i行第j列の要素を表す。例えば,A(3,1)=“名古屋”であり,A(3,2)=4である。また,→は代入を表す。
分類
テクノロジ系 » アルゴリズムとプログラミング » データ構造
正解
ウ
解説
設問の表は、1つの行がリスト内の一要素に対応しており、第1列は要素に格納されているデータ、第2列は次要素の行番号を示しています。変更前のリストと変更後のリストを比較すると、差異は2番目の"品川"と"新横浜"とわかります。
- 変更前[東京,品川,名古屋,新大阪]
- 変更後[東京,新横浜,名古屋,新大阪]
- [5→A(1,2)]
"東京"行の第2列に5を代入する操作です。
[A(A(1,2),2)→A(5,2)]
第1の操作によってA(1,2)の値は5に変更されています。つまりA(5,2)→A(5,2)という操作になります。この操作の結果、A(5,2)は空(null)になります。
A(5,2)が空になってしまうため誤りです。 - [5→A(1,2)]
"東京"行の第2列に5を代入する操作です。
[A(A(2,2),2)→A(5,2)]
A(2,2)の値は3なので、A(3,2)→A(5,2)という操作になります。この操作の結果、A(5,2)にはA(3,2)の値である4が代入されます。
A(5,2)が4になってしまうため誤りです。 - 正しい。
[A(A(1,2),2)→A(5,2)]
A(1,2)の値は2なので、A(2,2)→A(5,2)という操作になります。この操作の結果、A(5,2)にはA(2,2)の値である3が代入されます。
[5→A(1,2)]
"東京"行の第2列に5を代入する操作です。
A(1,2)=5、A(5,2)=3 となるので適切です。 - [A(A(2,2),2)→A(5,2)]
A(2,2)の値は3なので、A(3,2)→A(5,2)という操作になります。この操作の結果、A(5,2)にはA(3,2)の値である4が代入されます。
[5→A(1,2)]
"東京"行の第2列に5を代入する操作です。
A(5,2)が4になってしまうため誤りです。