2012年5月29日火曜日

=== 平成24年春 問7 ===


平成24年春目次  前の問題  次の問題

問7

多数のデータが単方向リスト構造で格納されている。このリスト構造には,先頭ポインタとは別に,末尾のデータを指し示す末尾ポインタがある。次の操作のうち,ポインタを参照する回数が最も多いものはどれか。

ア リストの先頭にデータを挿入する。
イ リストの先頭のデータを削除する。
ウ リストの末尾にデータを挿入する。
エ リストの末尾のデータを削除する。



解説

図のようなリストがあると思って考えてみる。


ア 新しくデータを作成し、「次のデータへのポインタ」に、先頭ポインタに格納されている100番地を入れる
  先頭ポインタには、自分のデータのアドレスを入れる。
  この場合先頭ポインタにアクセスするだけ。データをたどる回数は0回

イ 先頭ポインタの示すデータ(100番地)の「次のデータへのポインタ」(110番地)を先頭ポインタに入れる
  この場合、先頭ポインタから、1番目のデータまでたどるので1回 

ウ データを作成し、次のデータへのポインタはnullとする
  末尾ポインタが示す最後のデータにアクセスし「次のデータへのポインタ」を自分のアドレスにする
  末尾ポインタの150番地を自分のアドレスに変更する
  末尾ポインタから末尾のデータまでたどるので1回
エ 先頭ポインタから、データをたどり、次のデータへのポインタに、末尾ポインタの値が入っているデータまで順にたどる
  ここでは、200番地のデータの「次のデータへのポインタ」が、末尾ポインタに入っている150番地になっている
  その150番地をnullに変更する
  末尾ポインタの値は、変更したデータのアドレス200番地とする
  この場合は、3番目のデータまでたどったので、3回

結局、エの場合に、ポインタを参照して、データをたどる回数が最も多くなる。





0 件のコメント:

コメントを投稿