Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
yur@
5 / 5 / 2
Регистрация: 06.03.2014
Сообщений: 106
#1

Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец - C++

24.03.2014, 21:25. Просмотров 1323. Ответов 6
Метки нет (Все метки)

Здравствуйте! имеется задание: создать очередь с приоритетом (у каждого элемента свой приоритет). Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец. (Последняя цифра числа является его приоритетом).
Саму функцию вставки в очередь я реализовал, но как быть с приоритетом и как он вообще реализуется?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void INSERT(TPQueue* &pbq,TPQueue* &peq, TElQ newEl)
{
    TPQueue* el=new TPQueue; 
    el->info=newEl;
    el->next=NULL;
    if (!isEmpty(peq)) {    
        peq->next=el;       
        peq=el;             
    } else {        
    peq=el;    
    pbq=el;     
    };
}
Добавлено через 53 минуты
подскажите, пожалуйста...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2014, 21:25     Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец
Посмотрите здесь:
C++ Очереди с приоритетом
Очередь с приоритетом C++
C++ Очередь с приоритетом
C++ Очередь с приоритетом
C++ Очередь с приоритетом
Очередь с приоритетом C++
Очередь с приоритетом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
25.03.2014, 00:18     Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец #2
yur@, как вариант - сортировка при вставке. В качестве критерия сортировки как раз используется приоритет. Если совсем просто, то можно и без сортировки, хранить элементы очереди в списке, при изъятии из очереди искать элемент с наибольшим (или наименьшим) приоритетом. Будет линейная сложность, зато просто реализовать.
Другие варианты (хотя вместо википедии лучше найти хорошую книжку по алгоритмам):
Двоичная куча
Биномиальная куча
Фибоначчиева куча
yur@
5 / 5 / 2
Регистрация: 06.03.2014
Сообщений: 106
25.03.2014, 01:12  [ТС]     Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец #3
DrOffset, а если работать с приоритетом, то для него нужно создавать отдельное поле в структуре?
salam
162 / 143 / 12
Регистрация: 10.07.2012
Сообщений: 725
25.03.2014, 11:20     Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец #4
очередь с приоритетами пишется на бинарной куче.
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
25.03.2014, 18:52     Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец #5
yur@, это зависит от того что является приоритетом. Если же пример синтетический, то можно и создать.
yur@
5 / 5 / 2
Регистрация: 06.03.2014
Сообщений: 106
25.03.2014, 19:26  [ТС]     Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец #6
DrOffset, Последняя цифра числа является его приоритетом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 19:39     Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец
Еще ссылки по теме:
Очередь с приоритетом C++
C++ Очередь с приоритетом
C++ Очередь с приоритетом
Очередь с приоритетом. C++
C++ Очередь с приоритетом

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
25.03.2014, 19:39     Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец #7
yur@, ну тогда в функции сравнения надо просто сравнивать эти цифры. Отдельное поле не надо.
Yandex
Объявления
25.03.2014, 19:39     Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru