我需要在C編程中使用單向鏈表實現一個優先級隊列。如何在C編程中實現優先隊列?
我對優先級隊列沒有清晰的認識。我用Google搜索,但沒有完全理解我發現的內容。我的理解是,優先級隊列是一個隊列,其元素按優先級排序。根據元素優先級將列表中的插入定位在列表中。
假設我們有以下情況。 (注:我假設,更高的價值遠遠具有較高優先級):
Element-->2 (priority=2) (Now in position 0)
如果另一個元素需要插入,說Element-->3 (priority=3)
具有更高的優先級。
我可以移動上一個元素Element-->2 (priority=2)
,並在位置0處插入此新的Element-->3 (priority=3)
,並將Element-->2 (priority=2)
移動到列表中的位置1。
現在名單成爲,
Element-->3 (priority=3) followed by Element-->2 (priority=2)
同樣,插入的基礎上,我必須在列表中的所有元素轉變?
這是正確的嗎?
到目前爲止好 - 你是否被你的實現困住了? – sarnold
簡而言之,當它必須在列表上操作時,它需要具有最高優先級的項目來操作......如何實現這一點取決於您是將最高優先級的元素放在列表正面還是將其放在堆棧前面(如果你使用堆)... – nikel