平成26年秋期午後問3

たまさん  
(No.1)
https://www.ap-siken.com/kakomon/26_aki/pm03.html
「オ」についてなのですが
A,B片方がNULLで片方は値が入っていた場合はelse分でいいと考えたのですが、両方ともNullだった場合代入される意図は何ですか?
2023.08.24 17:54
boyonboyonさん 
AP シルバーマイスター
(No.2)
a,bどちらかがnullになると、whileをぬけるので、両方がnullになることはないと思います。
2023.08.24 18:43
たまさん  
(No.3)
返信ありがとうございます、while文の外側なので必ず一度実行する処理ではないのでしょうか?
2023.08.24 18:57
boyonboyonさん 
AP シルバーマイスター
(No.4)
どちらかが、nullになり、whileを抜けた後、if文で、残っている方を連結します。
2023.08.24 19:13
たまさん  
(No.5)
1.(a=n,b=n)
2.3.(a=null,b=n)片方がn
4.(a=null,b=null)
nは値が入っているという意味です。
上記の条件網羅使うと
1.はwhile抜けれないので除外
2.3.はどちらもNULLではないのwhile文は抜けれます、その後の「オ」の部分でnullじゃないほうを結合するので理解できます。
4.に関して両方NULLなのでifの判定条件をすることになりIF文に合わなかったとしてもelse文があるのでどちらかはnullを代入することになります。
この4.に関してNULLを代入することになると思います。これが意味のないNULL代入を結果的にしているのがもやもやしております。
2023.08.24 19:40
boyonboyonさん 
AP シルバーマイスター
(No.6)
本文に、
>それぞれの要素数が1になるまでデータ列の分割を繰り返し,
とあるので、a=null,b=nullになることはないと思います。
また、
>function merge(a,b) //a,bは、併合対象の連結リストの先頭へのポインタ
です。a=nullかつb=nullは、引数として不適だと思います。
あと、a,bはポインタ変数なので、nなどの値が入っているわけではありません。
ポイントしている場所の値は、この問題では  a->value  と表しています。
a=nullということは、ポイントする場所がないということです。
2023.08.24 22:13

返信投稿用フォーム

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

その他のスレッド


Pagetop