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

Приоритетная очередь - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как исправить ошибку. Ввожу следующие данные Xin=1 Xout=10 шаг 2 a=1 b=0 c=2 по идеи должен считать по F=x-a/x-c а он считате по F=x/c http://www.cyberforum.ru/cpp-beginners/thread1051800.html
#include <stdio.h> #include <conio.h> #include <iostream> #include <stdlib.h> #include <locale> #include <conio.h> using namespace std; int main() { setlocale(LC_ALL,"Rus");
C++ Какой swap быстрее? добрый день. возможно, вопрос глупый (или обсуждался уже, не искал, но все же), что будет быстрее, вот такое: void swap2(int* a, int* b) { int tmp = *a; *a = *b; *b = tmp; } или вот такая упоротость: void swap(int* a, int* b) { *a ^= *b; *b ^= *a; http://www.cyberforum.ru/cpp-beginners/thread1051779.html
C++ Контейнер map, с двумя ключами?
Добрый день всем! Всех с наступающим! Интересует такой вопрос , имеется ли в STL или Boost, контейнер аналогичный map, только с двумя ключами? Хотя есть необходимость и в неуникальных парах ключей, поэтому можно и аналогичный multimap. Пока все, что пришло в голову это: std::map< std::pair< KeyPart1, KeyPart2 >, Data >; Однако, не знаю хороший это вариант или нет, и есть ли какая-нибудь...
C++ необходимо сделать шаблон класса, не знаю как
//--------------------------------------------------------------------------- #pragma hdrstop #include "Unit2.h" #include <math.h> //--------------------------------------------------------------------------- #pragma package(smart_init)
C++ поиск самого длинного симметричного слова http://www.cyberforum.ru/cpp-beginners/thread1051766.html
дано предложение оканчивающееся точкой, найти самое длинное симметричное слово в этом предложение. Помогите написать программу на С++, я уже неделю не могу написать.
C++ задание цвета текста в зависимости от введенного числа Всем привет, помогите написать задачу: Написать программу, которая, в зависимости от введенного числа, выводит цвет, которому оно соответствует. 0 = Черный, 1 = Синий, 2 = Зеленый, 3 = Голубой, 4 = Красный, 5 = Лиловый, 6 = Желтый, 7 = Белый, 8 = Серый, 9 = Светло-синий, 10 = Светло-зеленый, 11 = Светло-голубой, 12 = Светло-красный, 13 = Светло-лиловый, 14 = Светло-желтый, 15 = Ярко-белый подробнее

Показать сообщение отдельно
Kw1nT
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 16
22.12.2013, 13:20     Приоритетная очередь
Добрый день друзья. Нужна ваша помощь в решении одной проблемы.
Суть проблемы в том что я в програмировании еще новичок но задача тяжелая для моего уровня программирования. Поэтому прошу вашей помощи в решении этой задачи ...
Нужно построить приоритетную очередь в С + + (консоли ) , чтобы когда мы добавляли или удаляли элементы в очередь ( из очереди ) мы указывали приоритет элемента.
И чтобы была возможность вывода информациии об очереди, всмысле обо всех элементах в ней ...

-----------------------------------------------------------------------------------------------------------------------
P.S Вот кстати полное условие этой задачи но она как на меня слишком умна ... Большое спасибо за любую указанную помощь ...


Приоритетная очередь - это очередь , в которой важно не то , кто стал последним (порядок перемещения в ней не играет роли) , а кто главнее. Более точно , при помещении в очередь указывается приоритет объекта помещается ( будем считать приоритеты целыми числами) , а при получении из очереди выбирается элемент с наибольшим приоритетом ( или один из таких элементов) .
Реализовать приоритетную очередь так , чтобы помещение и получения элемента требовали логарифмического числа действий (от размера очереди) .
Указания к решению . Согласно алгоритма сортировки деревом (в его окончательном варианте ) , будем размещать элементы очереди в массиве x [ 1 ] .. x [ k ] , поддерживая такое свойство : x [i] старше ( имеет больший приоритет) своих сыновей x [ 2 и ] и x [ 2 и +1 ] , если таковые существуют - и , следовательно , всякий элемент старше своих потомков. (Ведомости о приоритетах также хранятся в массиве , так что мы имеем дело с массивом пар ( элемент , приоритет) . ) Удаление элемента с сохранением этого свойства описано в алгоритме сортировки. Надо еще уметь восстанавливать свойство после добавления элемента в конец . Это делается так :
****t = номер добавленного элемента
****{ инвариант : в дереве любой предок приоритетнее потомка ,
********если этот потомок - не t }
****while t - не корень и t старше своего отца do begin
****| Поменять t с его отцом
****end ;
Если очередь образуют граждане , стоящие в вершинах дерева , т.е. за каждым стоит двое , а перед каждым (кроме первого) - один , то смысл этого алгоритма ясен: встав в конец , приоритетный гражданин начинает пробираться к началу , вытесняя тех , кто стоит перед ним - пока не встретит более приоритетного .
Замечания. Приоритетное очередь естественно использовать при моделировании процессов , протекающих во времени . При этом элементы очереди - это ожидаемые события , а их приоритет определяется временем , когда они произойдут.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru