Мне нужно реализовать приоритетную очередь в C-программировании, используя односвязный список.
У меня нет четкого представления о приоритетной очереди.Я погуглил, но не до конца понял, что нашел.Насколько я понимаю, приоритетная очередь - это очередь, элементы которой упорядочены по приоритету.Вставки в список размещаются в списке на основе приоритетов элементов.
Допустим, у нас следующий сценарий.(Примечание: я предполагаю, что более высокое значение идет с более высоким приоритетом):
Element-->2 (priority=2) (Now in position 0)
Если необходимо вставить другой элемент, скажем Element-->3 (priority=3)
, который имеет более высокий приоритет.
Я могу двигатьсяпредыдущий элемент, Element-->2 (priority=2)
, и вставьте этот новый Element-->3 (priority=3)
в позицию 0 с Element-->2 (priority=2)
, перемещенным в позицию 1.
Теперь список становится,
Element-->3 (priority=3) followed by Element-->2 (priority=2)
Точно так же, на основе вставки, я должен сдвинуть все элементы в списке?
Это правильно?