修了試験 2022-01-23実施分 基本情報技術者試験 問7
リストを二つの1次元配列で実現する。 配列要素box[i]とnext[i]の対がリストの一つの要素に対応し,box[i]に要素の値が入り,next[i]に次の要素の番号が入る。 配列が図の状態の場合,リストの3番目と4番目との間に値がHである要素を挿入したときのnext[8]の値はどれか。 ここで,next[0]がリストの先頭(1番目)の要素を指し,next[i]の値が0である要素はリストの最後を示し,next[i]の値が空白である要素はリストに連結されていない。 〔配列の状態〕 i /0|1|2|3|4|5|6|7|8|9 box[i]/ |A|B|C|D|E|F|G|H|I next[i]/1|5|0|7| |3| |2| |
正答3
解説
正解は3です。 next[0]から順にnextの値をたどり、リストの並び順を確認します。 そのうえで、3番目と4番目の要素の間にHを挿入するときに、どの値を書き換えるかを考えます。 【計算】 next[0]=1なので、1番目の要素はbox[1]のAです。 next[1]=5なので、2番目の要素はbox[5]のEです。 next[5]=3なので、3番目の要素はbox[3]のCです。 next[3]=7なので、4番目の要素はbox[7]のGです。 next[7]=2なので、5番目の要素はbox[2]のBで、next[2]=0によりここが最後です。 Hはbox[8]に入っているので、3番目のCの次をHにするためnext[3]を8に変えます。 Hの次を元の4番目のGにするため、next[8]には7を入れます。 【選択肢別解説】 1:× 3は3番目の要素Cの位置です。 next[8]にはHの次の要素を指す値を入れるので誤りです。 2:× 5は2番目の要素Eの位置です。 Hの次はEではなくGなので誤りです。 3:○ Hの次は元の4番目の要素Gで、Gはbox[7]にあります。 したがってnext[8]は7です。 4:× 8はH自身の位置です。 挿入時にnext[3]へ設定する値であり、next[8]の値ではありません。 【ポイント】 連結リストへの挿入では、前の要素のポインタを新しい要素へ向けます。 新しい要素のポインタには、前の要素が元々指していた位置を入れます。まとめて解く
修了試験 2022-01-23実施分を通しで解く(80問)→