修了試験 2019-07-28実施分 基本情報技術者試験 問6
リストを二つの1次元配列で実現する。 配列要素box[i]とnext[i]の対がリストの一つの要素に対応し,box[i]に要素の値が入り,next[i]に次の要素の番号が入る。 配列が図の状態の場合,リストの3番目と4番目との間に値がHである要素を挿入したときのnext[8]の値はどれか。 ここで,next[0]がリストの先頭(1番目)の要素を指し,next[i]の値が0である要素はリストの最後を示し,next[i]の値が空白である要素はリストに連結されていない。 box:0|1|2|3|4|5|6|7|8|9/ |A|B|C|D|E|F|G|H|I next:0|1|2|3|4|5|6|7|8|9/1|5|0|7| |3| |2| |
正答3
解説
正解は3です。 配列boxとnextで実現した連結リストに、要素を挿入する問題です。 next[i]は次の要素の番号で、next[0]が先頭を指します。 【計算】 next[0]=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と4番目のGの間に入れます。 CのnextをHの番号8に変え、next[3]=8とします。 Hの次はGなので、next[8]にはGの番号7を入れます。 【選択肢別解説】 1:× 3はCの番号で、next[8]を3にするとHの次がCに戻ってしまいます。 2:× 5はEの番号で、Hの次の要素ではありません。 3:○ Hの次の要素はGで、Gはbox[7]にあるため、next[8]は7です。 4:× 8はH自身の番号で、挿入後のnext[3]の値です。 【ポイント】 挿入では、新要素のnextに前の要素の元のnextを入れ、前の要素のnextを新要素の番号に変えます。 配列上の位置の順とリストの順は一致しないので、必ずnextをたどって順序を確かめます。まとめて解く
修了試験 2019-07-28実施分を通しで解く(80問)→