HOME»基本情報技術者試験掲示板»平成25年春期午後問8
投稿する

平成25年春期午後問8 [4618]

 トマさん(No.1) 
https://www.fe-siken.com/kakomon/25_haru/pm08.html
設問2のgで、なぜ購入[kp].ptrで置き換えるのでしょうか?
そこだけよくわかりませんでした。
2022.11.15 15:08
jjon-comさん(No.2) 
FE ゴールドマイスター
> 設問2のg  そこだけよくわかりませんでした。
であるなら、[ f ] [ g ] がレコードの削除処理に該当することは了解済みですね。

> なぜ購入[kp].ptrで置き換えるのでしょうか?
[ g ]の正解は、購入[kp].ptrではなく、購入[K].ptrです。

>〔プログラム〕
>/* 更新部 */
>・Kp←0
>・K←ptr起点
>■(K > 0) and (…省略…)
>|・Kp←K
>|・K←購入[K].ptr
>■

より、一方向連結リスト構造の 購入[K] をptr起点から順にたどっていることが分かります。
指標はKとKpの2つがあり、Kが先行して、Kpがそれを後から追っていることが分かります。

イメージとして、一方向連結リストが次のようであるなら、
東京→品川→新横浜→小田原→
Kが東京(ptr起点)を指しているときには Kpは無効な要素(0)を指し、
Kが 品川 を指しているときには Kpは 東京 を指し、
Kが新横浜を指しているときには Kpは 品川 を指し、
Kが小田原を指しているときには Kpは新横浜を指しています。

Kが新横浜を指し、Kpが 品川 を指している状態で、新横浜を削除するなら、
・購入[Kp].ptr ← 購入[K].ptr  ですし、

Kが 品川 を指し、Kpが 東京(ptr起点)を指している状態で、品川を削除するなら、
・ptr起点 ← 購入[K].ptr  です。
2022.11.15 21:31
 トマさん(No.3) 
すみません、質問ですが、
>Kが新横浜を指し、Kpが 品川 を指している状態で、新横浜を削除するなら、
・購入[Kp].ptr ← 購入[K].ptr 
の部分でなぜ右のような式にならないのでしょうか?購入[K].ptr ←  購入[Kp].ptr
Kで上書きしたら新横浜が削除できていないように思います。
すみませんがよろしくお願い致しますm(._.)m
2022.11.17 11:03
jjon-comさん(No.4) 
FE ゴールドマイスター
以下の図が崩れるようなら,テキストエディタなどに
文字列コピーして,等幅フォントで読んでください。

> 東京(ptr起点)→品川→新横浜→小田原→
を次の図のように表すこととし,

        +―+
ptr起点 | 1|
        +―+

          品名    ptr
        +―――+―+
購入[1] | 品川 | 2|
        +―――+―+

          品名    ptr
        +―――+―+
購入[2] |新横浜| 3|
        +―――+―+

          品名    ptr
        +―――+―+
購入[3] |小田原| 4|
        +―――+―+

K=2,Kp=1,すなわち,
> Kが新横浜を指し、Kpが 品川 を指している状態
であるなら,

> ・購入[Kp].ptr ← 購入[K].ptr
すなわち,購入[1].ptr ← 購入[2].ptr を実行することで,
図の★印の値が書き換わります。

        +―+
ptr起点 | 1|
        +―+

          品名    ptr
        +―――+―+
購入[1] | 品川 | 3|★
        +―――+―+

          品名    ptr
        +―――+―+
購入[2] |新横浜| 3|
        +―――+―+

          品名    ptr
        +―――+―+
購入[3] |小田原| 4|
        +―――+―+

これにより,一方向連結リストは,
東京(ptr起点)→品川→小田原→
となり,新横浜は連結リストから外されました。

> 右のような式  購入[K].ptr ←  購入[Kp].ptr
すなわち,購入[2].ptr ← 購入[1].ptr を実行すると
図の◆印の値が書き換わり,

        +―+
ptr起点 | 1|
        +―+

          品名    ptr
        +―――+―+
購入[1] | 品川 | 2|
        +―――+―+

          品名    ptr
        +―――+―+
購入[2] |新横浜| 2|◆
        +―――+―+

          品名    ptr
        +―――+―+
購入[3] |小田原| 4|
        +―――+―+

一方向連結リストは次のようになります。
東京(ptr起点)→品川→新横浜→新横浜→新横浜→新横浜→(省略)
2022.11.17 15:42
 トマさん(No.5) 
回答ありがとうございます!
おかけでスッキリしました。ホントに助かりました!m(._.)m
2022.11.17 16:03
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop