基本情報技術者試験 2002年度 = 平成14年度・春期 午前 問12

 次のような双方向のポインタをもつリスト構造のデータがある。社員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

 ア 1  イ 2  ウ 3  エ 4

解答

 イ

解説

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

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

■ 変更前     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トップページへ