HOME»基本情報技術者試験掲示板»平成30年春期試験問題  午後問8

基本情報技術者試験掲示板

掲示板検索:

平成30年春期試験問題  午後問8[2249]

ITビギナーさん(No.1)

[プログラム 1 ]:makeHeapの引数data[]に図1と同じ数を 5,10,15,20,30,45,60の順で格納し、makeHeapを実行しても図2 heap[] 60,30,45,15,5,10,20にならず、60,20,45,5,15,10,30になってしまいます。
トレースがどこで間違えてるかわかりません。
  どなたか教えて頂けないでしょうか。宜しくお願いします。

2020.03.24 20:35
メタルさん(No.2)

この二つの関数の処理を勘違いして左右逆に計算してませんか?
整数型:lchild(整数型: i )
整数型:rchild(整数型: i )

配列をヒープの関係で見てみると、左右逆に節や葉が出来てますので、取り違えに気をつけてやってみてください。

2020.03.24 20:56
メタルさん(No.3)

ごめんなさい、勘違いです。
前の投稿は、無視して下さい。

2020.03.24 21:03
QMさん(No.4)

ヒープの条件は満たしているので、合ってるんじゃないですか?
結果が違うのは、たぶん初期値の並びが違うからでしょう。
トレースはしてみてませんけど・・・

2020.03.24 21:18
ITビギナーさん(No.5)

QMさん、ありがとうございます。
親の値が左右の子の値より大きければ問題ないんですね。

2020.03.24 21:23
残念・・・さん(No.6)

そうですね。根が最大で、親が左右の子よりデカきゃ大丈夫ですね。なんも問題なし。
その状態でheapSortを実行してもちゃんと昇順にソートできますね。

2020.03.24 23:05

【返信投稿用フォーム】

お名前(10文字以内)

顔アイコン


本文(2,000文字以内)

記事削除用パスワード(20文字以内)

プレビュー

※宣伝や迷惑行為を防止するため当サイトとIPAサイト以外のURLを含む記事の投稿は禁止されています。

投稿記事削除用フォーム

投稿No. パスワード 
© 2010-2020 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop