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

Очередь с приоритетом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция для конвертирования систем счисления. Не выходит :( http://www.cyberforum.ru/cpp-beginners/thread823865.html
Помогите решить задачу: Написать функцию, которая получает в качестве аргументов целое положительное число и систему счисления, в которую это число должно переводится (системы счисления от 2 до 36). Например, при переводе числа 27 в систему счисления 16 должно получиться 1B; 13 в 5-ю - 23; 35 в 18-ю - 1H. Если система счисления до 10, то все получается, если уже выше... Я понимаю, что то...
C++ Класс "Телефонный справочник" Здравствуйте, нужно написать курсовую работу на тему "телефонный справочник" используя классы. Классы должны быть абстрагированными (думаю очень сильно абстрагировать не надо, 4-6 штук хватит), чтобы их можно было потом использовать для написания похожих программ. Пока в голову только пришло: Человек(ФИО, пол, возраст) -> Житель(Страна, город, адрес) -> Контакт(Номер телефона) Прошу вашей... http://www.cyberforum.ru/cpp-beginners/thread823863.html
C++ Поставить в строке номер для буквы в соответствии с алфавитом
Всем привет, вот занимаюсь таким делом: У меня есть слово, допусти "Hello". в этом слово мне нужно поставить каждой букве номер в соответствии с алфавитом. Написал так: int main () { char title={}; for(char i='A';i<='z';++i){ title=i; } vector<pair<char,int>>dictionary(58);
C++ Простые утилиты обслуживания. Поддержка пакетных (процедурных) файлов
Помогите выполнить задание: вывести список всех файлов из указанной директории, имена которых содержат русские буквы. Я добился вывода всех файлов из указанной директории, а нужно сделать, чтобы выводило только с русскими символами. #include <stdio> #include <iostream> #include <dir> #include <dos> using namespace std;
C++ Быстрое возведение в степень http://www.cyberforum.ru/cpp-beginners/thread823812.html
Написать функцию быстрого возведения в степень. Функция принимает в качестве параметров y,x и n и возвращает y^x mod y как результат программы.
C++ Написать справочник намеченных дел и мероприятий. Справочник намеченных дел и мероприятий. 1.Список намеченных мероприятий(дата, время, длительность, место проведения) 2.Реализуемые функции: напоминание о ближайшем мероприятии (по текущей дате и времени), удаление прошедших мероприятий или перенос их на будущее, анализ накладок(пересечений планируемых дел). подробнее

Показать сообщение отдельно
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
01.04.2013, 10:22     Очередь с приоритетом
Цитата Сообщение от Semeon94 Посмотреть сообщение
Как определять приоритет?
Приоритет - это ещё одно поле целого типа. С помощью него вы и будите располагать ваши элементы. Написал небольшую демонстрацию, думаю разберётесь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream>
#include <stdexcept>
#include <cstdlib>
 
template <typename T>
class TQueue
{
   protected:
      struct TNode
      {
         T data;
         int priority;
         TNode* next;
      }* list;
 
   public:
      TQueue(): list(NULL) { ; }
 
      TQueue* Push(T data, int priority = 0)
      {
         TNode* node = new TNode;
         node->data = data;
         node->priority = priority;
 
         if ((list == NULL) || (list->priority < node->priority))
         {
            node->next = list;
            list = node;
         }
         else
         {
            TNode* cur;
 
            for (cur = list; cur->next && (cur->next->priority >= node->priority); cur = cur->next) { ; }
 
            node->next = cur->next;
            cur->next = node;
         }
 
         return this;
      }
 
      T Pop() throw (std::out_of_range)
      {
         if (IsEmpty())
         {
            throw std::out_of_range("queue is empty");
         }
         T data = list->data;
         TNode* node = list;
         list = list->next;
         delete node;
 
         return data;
      }
 
      bool IsEmpty() const
      {
         return (list == NULL);
      }
 
      friend std::ostream& operator << (std::ostream& os, const TQueue<T>& queue)
      {
         typename TQueue<T>::TNode* node;
 
         for (node = queue.list; node; node = node->next)
         {
            if (node != queue.list)
            {
               os << ", ";
            }
            os << '[' << node->priority << ']' << node->data;
         }
 
         return os;
      }
};
 
int main()
{
   TQueue<int> list;
   list.Push(10, 0);
   list.Push(14, 1);
   list.Push(12, 0);
   list.Push(99, 9);
 
   std::cout << "source: " << list << std::endl;
 
   std::cout << "poped: " << list.Pop() << std::endl;
 
   std::cout << "result: " << list << std::endl;
 
   system("pause");
 
   return 0;
}
 
Текущее время: 00:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru