平成25年春期午後問8

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
おきこさん  
(No.1)
https://www.fe-siken.com/kakomon/25_haru/pm08.html
設問1のdについてお聞きしたいのですが、なぜオの購入[K].ptrではダメなのでしょうか?
2021.01.26 18:25
関数従属さん 
FE ゴールドマイスター
(No.2)
品番の順番になるように特売の品番を挿入して行くことになるのですが、
解説の中にも記載がある通り、以下のループ処理を抜ける際の
Kp、及び、Kの値が重要となります。

------------------------------------------
(K > 0) and (購入[K].品番 < 特売.品番)
  ・Kp ← K
  ・K ← 購入[K].ptr
------------------------------------------

ループをぬけた際に図1、図2の例だとそれぞれ以下の値になっています。
購入[Kp].品番 =224   Kp=4    購入[Kp].ptr =5
特売.品番     =229
購入[K].品番  =333   K =5    購入[K].ptr  =3

この後特売の品番229を最終行の6行目(「購入行数←購入行数+1」実行後の購入行数)
に挿入しますが、購入[購入行数].品番=229に対する購入[購入行数].ptrは
次の品番333を指す5行目(K=5)を設定することになります。

この時、購入[K].ptrだと値は3になり、品番333が飛んでしまうため間違いとなります。

尚、購入[Kp].ptrは図1、図2の例の場合だと、ループを抜けた時はKと同じ値になっておりますが
その後の購入[Kp].ptr←c(カ:購入行数)にて6に更新されてしまうため間違いとなります。
2021.01.26 22:47
おきこさん  
(No.3)
とても分かりやすく解説していただきありがとうございます!
昨日1日悩んでましたので凄くスッキリしました!
まだアルゴリズムの学習を始めて間もないのですが春期試験に向けて頑張りたいと思います!
2021.01.27 14:34

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop