No.69 双方向のポインタをもつリスト構造のデータを表に示す。
この表において新たな社員Gを社員Aと社員Kの間に追加する。
追加後の表のポインタa~fの中で追加前と比べて値が変わるポインタだけをすべて列記したものはどれか。
この表において新たな社員Gを社員Aと社員Kの間に追加する。
追加後の表のポインタa~fの中で追加前と比べて値が変わるポインタだけをすべて列記したものはどれか。
⭕️
❌
💾
🖊 | ☑️ |
⭕️ | [[ AnswerCalc[0] ]] % | A | [[ AnswerCalc[1] ]] |
追加前の社員名をポインタの示すアドレス順(括弧内はアドレス)に並べると、前ポインタが 0(参照なし) の要素が先頭、次ポインタが 0(参照なし) の要素が最後尾に配置されるので、
100:社員A(次300,前0)
↓
300:社員K(次200,前100)
↓
200:社員T(次0,前300)
という順序になります。
社員Gは、社員Aと社員Kの間に追加されるので、追加後の順番は、
100:社員A(次300,前0)
↓
400:社員G(次__,前__)
↓
300:社員K(次200,前100)
↓
200:社員T(次0,前300)
となります。
「A→G→K」のポインタの参照が正しく繋がるためには、Gの1つ目であるAの次ポインタとGの次であるKの前ポインタをそれぞれ400に更新する必要があるので、追加前と値が変わるポインタは、以下のa,fの2か所となります。
100:社員A(次300,前0)
↓
300:社員K(次200,前100)
↓
200:社員T(次0,前300)
という順序になります。
社員Gは、社員Aと社員Kの間に追加されるので、追加後の順番は、
100:社員A(次300,前0)
↓
400:社員G(次__,前__)
↓
300:社員K(次200,前100)
↓
200:社員T(次0,前300)
となります。
「A→G→K」のポインタの参照が正しく繋がるためには、Gの1つ目であるAの次ポインタとGの次であるKの前ポインタをそれぞれ400に更新する必要があるので、追加前と値が変わるポインタは、以下のa,fの2か所となります。
💾
✔️
[[ d.CommentTxt ]] |
< | > |
🥇 |