データ構造(全53問中44問目)
No.44解説へ
表は,配列を用いた連結セルによるリストの内部表現であり,リスト[東京,品川,名古屋,新大阪]を表している。このリストを[東京,新横浜,名古屋,新大阪]に変化させる操作はどれか。ここで,A(i,j)は表の第i行第j列の要素を表す。例えば,A(3,1)=“名古屋”であり,A(3,2)=4である。また,→は代入を表す。
出典:平成18年秋期 問13
広告
解説
設問の表は、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になってしまうため誤りです。
広告