- ベストアンサー
※ 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 のような形式にしたいのですが、どのようにすればよいでしょうか?
- みんなの回答 (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)
お礼
できました! 本当にありがとうございます。