ウが正解となるのは、リストの挿入操作におけるポインタの更新ロジックに基づきます。リストの3番目と4番目の間に値Hの要素を挿入する場合、まず挿入する要素(この場合は配列要素8番目)のnextポインタに、本来4番目の要素が指していた次の要素の番号を設定します。問題文によると、リストの3番目はnext[i]で次の要素を指しており、その次の要素が4番目にあたります。4番目の要素のnext[i]の値は、リストの連結関係において、その要素の次にくる要素の番号を示すため、挿入操作で3番目の要素から4番目の要素へのポインタを切り替える際、値Hの要素(8番目)が4番目の要素の場所を指すことになります。そして、値Hの要素(8番目)のnext[i]には、本来4番目が指していた次の要素の番号が入ります。問題文では、リストの3番目と4番目の間に値Hの要素を挿入するとあります。これは、3番目の要素の次に値Hの要素(8番目)が来て、その次に本来4番目の要素が指していた要素が来る、という構造になります。したがって、3番目の要素は値Hの要素(8番目)を指し、値Hの要素(8番目)は本来4番目が指していた要素を指すことになります。図の状態において、リストの3番目(next[i]が3を指す要素)の次にくる要素が4番目であり、4番目の要素のnext[i]は7を指していると仮定すると、値Hの要素(8番目)を挿入するには、3番目の要素が値Hの要素(8番目)を指し、値Hの要素(8番目)が本来4番目が指していた7を指すようにnextポインタを更新します。この際、問われているのは挿入された要素、つまり8番目の要素のnext[i]の値であり、これは本来4番目の要素が指していた次の要素、すなわち7を指すことになります。
読み込み中...