• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ヒープの質問です(難易度高))

ヒープの並べ替えプログラムに改良を加える方法

このQ&Aのポイント
  • ヒープの並べ替えプログラムでランダムな数を15個入力し、二分ヒープに並べ替える方法について質問です。
  • 現在のプログラムでは、データが[1,11,14,9,5,2,15,7,6,4,12,10,8,3,13]の場合に[15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]のように並べ替えることができます。
  • しかし、プログラムの出力結果をツリー表示に改良したいです。例えば、□□□8 □□12 □□□7 □14 □□□6 □□11 □□□5 15 □□□4 □□10 □□□3 □13 □□□2 □□9 □□□1 のような形式にしたいのですが、どのようにすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • siffon9
  • ベストアンサー率64% (136/211)
回答No.1

こんな感じでどうでしょうか。 heap = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1] def hoge(heap,ptr,depth) return unless heap[ptr] hoge(heap,2*ptr+1,depth+1) depth.times{print"□"} puts heap[ptr] hoge(heap,2*ptr+2,depth+1) end hoge(heap, 0, 0)

ararabre
質問者

お礼

できました! 本当にありがとうございます。

関連するQ&A