平成25年春期午後問8
トマさん
(No.1)
https://www.fe-siken.com/kakomon/25_haru/pm08.html
設問2のgで、なぜ購入[kp].ptrで置き換えるのでしょうか?
そこだけよくわかりませんでした。
設問2のgで、なぜ購入[kp].ptrで置き換えるのでしょうか?
そこだけよくわかりませんでした。
2022.11.15 15:08
jjon-comさん
★FE ゴールドマイスター
(No.2)
> 設問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)
すみません、質問ですが、
・購入[Kp].ptr ← 購入[K].ptr
の部分でなぜ右のような式にならないのでしょうか?購入[K].ptr ← 購入[Kp].ptr
Kで上書きしたら新横浜が削除できていないように思います。
すみませんがよろしくお願い致しますm(._.)m
>Kが新横浜を指し、Kpが 品川 を指している状態で、新横浜を削除するなら、
・購入[Kp].ptr ← 購入[K].ptr
の部分でなぜ右のような式にならないのでしょうか?購入[K].ptr ← 購入[Kp].ptr
Kで上書きしたら新横浜が削除できていないように思います。
すみませんがよろしくお願い致しますm(._.)m
2022.11.17 11:03
jjon-comさん
★FE ゴールドマイスター
(No.4)
以下の図が崩れるようなら,テキストエディタなどに
文字列コピーして,等幅フォントで読んでください。
を次の図のように表すこととし,
+―+
ptr起点 | 1|
+―+
品名 ptr
+―――+―+
購入[1] | 品川 | 2|
+―――+―+
品名 ptr
+―――+―+
購入[2] |新横浜| 3|
+―――+―+
品名 ptr
+―――+―+
購入[3] |小田原| 4|
+―――+―+
K=2,Kp=1,すなわち,
であるなら,
すなわち,購入[1].ptr ← 購入[2].ptr を実行することで,
図の★印の値が書き換わります。
+―+
ptr起点 | 1|
+―+
品名 ptr
+―――+―+
購入[1] | 品川 | 3|★
+―――+―+
品名 ptr
+―――+―+
購入[2] |新横浜| 3|
+―――+―+
品名 ptr
+―――+―+
購入[3] |小田原| 4|
+―――+―+
これにより,一方向連結リストは,
東京(ptr起点)→品川→小田原→
となり,新横浜は連結リストから外されました。
すなわち,購入[2].ptr ← 購入[1].ptr を実行すると
図の◆印の値が書き換わり,
+―+
ptr起点 | 1|
+―+
品名 ptr
+―――+―+
購入[1] | 品川 | 2|
+―――+―+
品名 ptr
+―――+―+
購入[2] |新横浜| 2|◆
+―――+―+
品名 ptr
+―――+―+
購入[3] |小田原| 4|
+―――+―+
一方向連結リストは次のようになります。
東京(ptr起点)→品川→新横浜→新横浜→新横浜→新横浜→(省略)
文字列コピーして,等幅フォントで読んでください。
> 東京(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
おかけでスッキリしました。ホントに助かりました!m(._.)m
2022.11.17 16:03
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告