Re: [問題] 想請問有關priority queue的問題

看板C_and_CPP作者 (嘿嘿)時間15年前 (2010/06/04 21:09), 編輯推噓3(3014)
留言17則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《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

06/04 21:16, , 1F
把比較的地方改成 heap[pos].priority 去比
06/04 21:16, 1F

06/04 21:27, , 2F
我卡在insertHeap那裡,當收到兩個變數值後,該怎麼把
06/04 21:27, 2F

06/04 21:28, , 3F
id和priority都新增到heap內呢?用兩個array嗎?
06/04 21:28, 3F

06/04 21:30, , 4F
struct data insert = { __ , __ , __ };
06/04 21:30, 4F

06/04 21:31, , 5F
你的 heap 的型態也要改, 把 id 跟 優先權看成是一個
06/04 21:31, 5F

06/04 21:31, , 6F
整體
06/04 21:31, 6F

06/04 21:32, , 7F
嗯嗯,我就是想把它看成整體,但就不知道該如何...
06/04 21:32, 7F

06/04 21:33, , 8F
就像我上面定義的那樣, 可以把傳進來分散的資料包在一
06/04 21:33, 8F

06/04 21:33, , 9F
個 data 變數裡
06/04 21:33, 9F

06/04 21:37, , 10F
我struct的概念還太弱了,我大概知道您的作法...不過...
06/04 21:37, 10F

06/04 21:38, , 11F
還是得跟您說聲謝謝,真的很熱心,我在想看看好了
06/04 21:38, 11F

06/04 21:39, , 12F
想再請教你一下,那我原本heap的array是不是要改成struct
06/04 21:39, 12F

06/04 21:46, , 13F
是阿, 因為你的heap已經不是只有儲存一個整數了, 連優
06/04 21:46, 13F

06/04 21:46, , 14F
先權都要存進去
06/04 21:46, 14F

06/04 21:55, , 15F
謝謝您~~我在try看看~~可不可以加你好友,比較方便問你XD
06/04 21:55, 15F

06/04 21:57, , 16F
有問題可以po上來問阿~ 還有其他厲害的大大 >///<
06/04 21:57, 16F

06/04 22:01, , 17F
哈哈,okok,不過我看我的程式好像要改的地方還頗多...
06/04 22:01, 17F
文章代碼(AID): #1C2Fi9gf (C_and_CPP)
文章代碼(AID): #1C2Fi9gf (C_and_CPP)