基本情報過去問 平成30年春期 午後問8

にゅさん  
(No.1)
昨日送らせていただいた質問の訂正です。初歩的な質問になってしまうのですが、もし、適当に配列dataの要素を7つ用意して(要素番号は0~6)末尾の要素番号6の値が配列dataの中で1番大きかった場合は親ノードの値(要素番号0)は変わりますか?よろしくお願いいたします。
2022.04.29 14:58
chihiroさん 
FE・プラチナエキスパート
(No.2)
>もし、適当に配列dataの要素を7つ用意して(要素番号は0~6)末尾の要素番号6の値が配列dataの中で1番大きかった場合は親ノードの値(要素番号0)は変わりますか?
プログラム1の話であれば、変わります。具体的には、

・k=6のとき、heap[k=6]>heap[parent(k=6)=2]よりswap(heap,6,2)を実行
・k←parent(k=6)=2
・k=2>0なのでループ継続
・heap[k=2]>heap[parent(k=2)=0]よりswap(heap,2,0)を実行
・k←parent(k=2)=0
・k>0が偽になりループ終了

となります。
2022.04.29 23:30
にゅさん  
(No.3)
了解です。ありがとうございます!
2022.04.30 07:55

返信投稿用フォーム

スパム防止のためにスレッド作成から30日以上経過したスレッドへの書き込みは禁止しています。

その他のスレッド


Pagetop