基本情報技術者試験 2010年度 = 平成22年度・春期 午前 問5

 双方向のポインタをもつリスト構造のデータを表に示す。この表において新たな社員Gを社員Aと社員Kの間に追加する。追加後の表のポインタa~fの中で追加前と比べて値が変わるポインタだけをすべて列記したものはどれか。

  アドレス     社員名     次ポインタ     前ポインタ  
100 社員A  300    0 
200 社員T   0   300 
300 社員K  200   100 

追加後の表
  アドレス     社員名     次ポインタ     前ポインタ  
100 社員A
200 社員T
300 社員K
400 社員G

ア a,b,e,f イ a,e,f ウ a,f エ b,e

解答



解説

 双方向リストでは、各ノードは、後続ノードを指すポインタと、先行ノードを指すポインタをもちます。それらのポインタをたぐることによって、後方あるいは前方へと順にアクセスできる構造です。

 本問で与えられた双方向リストの変更前と変更後を、図示したものを以下に示します。

■ 変更前     100         300         200     ┏━━┯━━━┯━━┓→┏━━┯━━━┯━━┓→┏━━┯━━━┯━━┓ ┃ 0 │社員A│ 300┃ ┃ 100│社員K│ 200┃ ┃ 300│社員T│ 0┃ ┗━━┷━━━┷━━┛←┗━━┷━━━┷━━┛←┗━━┷━━━┷━━┛ ■変更後     100         400         300         200     ┏━━┯━━━┯━━┓→┏━━┯━━━┯━━┓→┏━━┯━━━┯━━┓→┏━━┯━━━┯━━┓ ┃ 0 │社員A│ 400┃ ┃ 100│社員G│ 300┃ ┃ 400│社員K│ 200┃ ┃ 300│社員T│ 0┃ ┗━━┷━━━┷━━┛←┗━━┷━━━┷━━┛←┗━━┷━━━┷━━┛←┗━━┷━━━┷━━┛

 図からも、二か所の値が変わっていることが分かります。
 ■ 社員Aの次ポインタ
   社員Kではなく社員Gを指すように変更されます(300から400に変更)。
 ■ 社員Kの前ポインタ
   社員Aではなく社員Gを指すように変更されます(100から400に変更)。


BohYoh.comトップページへ