看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《rmp4aup6 (嘿嘿)》之銘言: : 開發平台: (例: Dev-C++, Windows) : 想請問各位,如果想寫priority queue的程式(by C語言), : 目前想到可以用heap去做, : 但是以前學到的heap,都是一個數字代替priority, : 如果我想在heap上的每個圈圈,攜帶的資料有id(從1開始)、priority值, : 而那棵heap樹,是以priority去建立,priority最大的為root, : 依序priority大小做刪除,並且會附帶id值(第幾個新增的), : 這個是要建立一個struct去寫,是嗎? : 不曉得有沒有範例程式可以參考嗎? 因為我一直失敗...... : 還是我可以往哪個方向去查詢呢? : 不好意思,打擾各位了。 麻煩妳們了 下面的連結是我寫的程式碼 http://nopaste.info/ff9338d309.html http://nopaste.info/e51d154efb.html 我希望能在新增節點的時候,加入id和priority值, 並在移除節點時,是依照priority大小刪除, 且會顯示該節點的id為多少, 請問我必須在程式碼的哪裡做些修改呢?? 麻煩各位了,謝謝妳們的幫忙~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.204.22
loveme00835:把比較的地方改成 heap[pos].priority 去比 06/04 21:16
rmp4aup6:我卡在insertHeap那裡,當收到兩個變數值後,該怎麼把 06/04 21:27
rmp4aup6:id和priority都新增到heap內呢?用兩個array嗎? 06/04 21:28
loveme00835:struct data insert = { __ , __ , __ }; 06/04 21:30
loveme00835:你的 heap 的型態也要改, 把 id 跟 優先權看成是一個 06/04 21:31
loveme00835:整體 06/04 21:31
rmp4aup6:嗯嗯,我就是想把它看成整體,但就不知道該如何... 06/04 21:32
loveme00835:就像我上面定義的那樣, 可以把傳進來分散的資料包在一 06/04 21:33
loveme00835:個 data 變數裡 06/04 21:33
rmp4aup6:我struct的概念還太弱了,我大概知道您的作法...不過... 06/04 21:37
rmp4aup6:還是得跟您說聲謝謝,真的很熱心,我在想看看好了 06/04 21:38
rmp4aup6:想再請教你一下,那我原本heap的array是不是要改成struct 06/04 21:39
loveme00835:是阿, 因為你的heap已經不是只有儲存一個整數了, 連優 06/04 21:46
loveme00835:先權都要存進去 06/04 21:46
rmp4aup6:謝謝您~~我在try看看~~可不可以加你好友,比較方便問你XD 06/04 21:55
loveme00835:有問題可以po上來問阿~ 還有其他厲害的大大 >///< 06/04 21:57
rmp4aup6:哈哈,okok,不過我看我的程式好像要改的地方還頗多... 06/04 22:01