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

Функция добавления и увеличения элемента из очереди с приоритетами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод в 2 сс (какой способ будет быстрее работать) http://www.cyberforum.ru/cpp-beginners/thread597655.html
Какой способ будет быстрее работать? Тривиальный, когда мы берем остатки, или такой - std::bitset <sizeof(Type) * 8> my(n); std::string str = my.to_string();
C++ Разработать программу для построения графиков функции Помогите решить задачу для зачета, файл с заданием прикрепил. Если можно с комментариями, ибо много пропустил по занятиям. № 5. с Разработать программу для построения графиков функции, заданных в таблице 1. Считать из файла, указанного пользователем значения абсциссы Х (не менее 20 значений), произвести сортировку Х по возрастанию, рассчитать для них значения ординаты У, записать результат... http://www.cyberforum.ru/cpp-beginners/thread597648.html
C++ Быстрая сортировка Хоара на векторе
Программа работает корректно! Сразу говорю, она слегка своеобразная, но все чики-пуки. я не могу понять как по ней сделать 3 графика: Предсказания, Гарантия, Ограничение. Плиз, скажите как это делается? Желательно развернуто, так как мозг женский, тугой)).. Надеюсь на помощь. Еще желательно сделать оценку быстродействия. // b_sort.cpp: определяет точку входа для консольного приложения....
C++ Подскажите пожалуйста, об области видимости объектов
Привет, есть небольшой вопрос: не могу разобраться с ООП, помогите пожалуста. Например, есть несколько классов с открытыми полями. НЕ понятно только почему если я создаю экземпляр в теле функции main его не видно в другом классе, но при этом, в теле функции Класса "А" можно создать экземпляр класса "Б"... Интересно, можно ли как-то передать сам экземпляр класса из main в тело метода другого...
C++ Перейти с Win на LINUX и с VB.NET на С++ http://www.cyberforum.ru/cpp-beginners/thread597614.html
По долгому периоду пользования продукции Microsoft решил перейти на павший выбор Kubuntu (Ubuntu) Ясень пень что VB.Net на линуксе нет. За то есть С++, который якобы лучше, к тому же тож на винде работать будет. Вот только в С++ я полный ноль. Но с чего то начинать же надо. Хочу попросить у бывалых совета, среда разработки и литературу для самотыканья) P.S. Знаю что есть среда QT там...
C++ Описать класс LIFO, реализующий стек произвольного размера для хранения целых чисел Уважаемые программисты помогите пожалуйста с задачей в которой я не знаю как чего делать!!!!! Вот задача:Описать класс LIFO, реализующий стек произвольного размера для хранения целых чисел. Добавление и извлечение одиночных элементов из стека должно быть реализовано при помощи перегрузки операций<>, добавление последовательности элементов<<, вывод на экран>>. При добавлении элементов в стек... подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.06.2012, 09:10     Функция добавления и увеличения элемента из очереди с приоритетами
Функция зависит от внутреннего представления данных очереди. Очередь ведь можно и на массиве делать, а можно на линейном списке. Можно иметь один указатель только на начало очереди, а можно два: на начало и на конец. При наличии приоритетов можно завести массив с указателями на концы каждого фрагмента, состоящего из элементов в равными приоритетами, по числу поддерживаемых приоритетов и отдельно на начало всей очереди. Конец фрагмента, состоящего из элементов с приоритетом выше низшего и начало фрагмента, состоящего из элементов со следующим в порядке понижения приоритетом - соседние позиции. Или массив указателей по числу поддерживаемых приоритетов +1 для хранения и указателя на начало очереди, и концов её фрагментов. Или массив структур по числу поддерживаемых приоритетов с указателями и на начала, и на концы всех фрагментов. Или два массива указателей, в один собрать указатели на начала, а в другой - на концы. Или для каждого приоритета выделить по отдельной очереди. А они могут быть сделаны опять таки на массиве, или на линейном списке. Получается массив массивов, или массив списков. А можно список очередей с каждым приоритетом, тогда список массивов, или список списков. Приоритетная очередь - это верхний уровень абстракции, а на нижнем вместо одной приоритетной может быть две очереди: основная и очередь внеочередников. Элементы основной будут обслуживаться только в том случае, если очередь внеочередников пуста. Но очередь внеочередников - это и есть очередь тех, кто имеет высокий приоритет. Вариантов много, выбор одного отражается на функции. А на используемых в ней идентифкаторах отражается и декларация очереди.

Добавлено через 5 минут
Я ведь на вижу здесь декларации. И метод - тоже функция, только это функция-член. А в классе есть свои синтаксические нюансы. Или это функция-друг? Ничего же не известно.

Добавлено через 1 минуту
Нет даже количества приоритетов и их обозначений. Может они enumом обозначены, или строкой? А может числом? Какого типа?

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