Как сделать приоритетной реализацию очереди с использованием циклической очереди в C ++? - PullRequest
0 голосов
/ 11 декабря 2010

Желательно получить значение элемента в очереди с наивысшим приоритетом.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2010

Вы можете сделать приоритетную очередь реализованной в виде двоичной минимальной кучи. Ключи каждой записи могут представлять ее «приоритет», и чем ниже ключ, тем выше приоритет. Таким образом, удаление корневой записи вернет запись с самым высоким приоритетом.

0 голосов
/ 11 декабря 2010

Вам нужно несколько очередей, каждая с разными приоритетами? Какую проблему вы на самом деле пытаетесь решить?

Идея очереди в том, что это очередь, и то, что находится в очереди в очереди, имеет приоритет, и вы должны пройти через очередь, только вытолкнув ее из нее. Реализация приоритетной очереди с другой очередью - круглой или нет - не самая эффективная вещь. Вместо этого вы можете реализовать его в виде кучи или дерева - есть несколько статей, в том числе одна в Википедия в приоритетных очередях .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...