Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
3 / 3 / 3
Регистрация: 23.06.2015
Сообщений: 38

Очередь с приоритетом на основе массива

01.02.2017, 15:04. Показов 3648. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно организовать очередь с приоритетом на основе массива ?
Возможно можно исп динамический двумерный массив , но как его потом отсортировать тогда по приоритету?

Пока вот что получилось
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
int main()
{
setlocale(LC_ALL, "Russian");
////
cout<<"Очередь на основе массива"<<endl;
cout<<"Введите размер очереди:"<<endl;
int sizeO;
cin>>sizeO;
// Создание 2 мерного массива
int **m;
m=new int*[sizeO];
 
for(int i=0;i<sizeO;i++){
        //Выделяем память для строки
        m[i] = new int[sizeO];
        cout<<"Значение "<<i+1<<"-го элемента очереди(Значение,Ключ)";
    for(int j=0;j<2;j++) {
        int pr ;
        cin>>pr;
        m[i][j]= pr;
    }
}
 
cout<<endl;
cout<<"-# Полученый массив #-"<<endl;
//Вывод на экран
for(int i=0;i<sizeO;i++){
    for(int j=0;j<2;j++) {
           cout <<m[i][j]<<endl;
    }
}
//Чистка
for(int i=0;i<sizeO;i++){
    for(int j=0;j<2;j++) {
           delete [] m[i];
           delete[]m;
    }
}
//
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.02.2017, 15:04
Ответы с готовыми решениями:

Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец
Здравствуйте! имеется задание: создать очередь с приоритетом (у каждого элемента свой приоритет). Элементы с наивысшим приоритетом ставятся...

Очередь на основе массива
когда создаю пустую очередь размерностью 2 в main() вот так BoundQueue &lt;int&gt; a(2); выводится ошибка:main.cpp(13) : error C2259:...

Очередь на основе массива
Очередью (англ. queue) называется хранилище данных, в котором можно работать только с одним элементом: тем, который был добавлен в стек...

4
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
01.02.2017, 15:29
что то я не пойму о какой очереди идет речь, и почему выделяется массив размером sizeO а не 2 в строке 15
0
3 / 3 / 3
Регистрация: 23.06.2015
Сообщений: 38
01.02.2017, 15:38  [ТС]
Raali, О очереди с приоритетом https://ru.wikipedia.org/wiki/... 0%B8%D0%B5)
Нужна именно реализация на основе массива.

m[i] = new int[sizeO]; - Мы выделяем память под строку , а она у нас произвольной длины всегда. Кол-во строк всегда 2-ве.
По задумке вот так:
В первой строке значения , во второй ключи(приоритет).
|1|2|3|4|5|6| - Значение
|2|3|6|2|6|7| - ключ
Например у значения 3 , ключ(приоритет) 6.
Как с этим делам работать ? Например отсортировать
0
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
01.02.2017, 16:05
Цитата Сообщение от sham63 Посмотреть сообщение
Как с этим делам работать ? Например отсортировать
например воспользоваться сортировкой пузырьком, только вместе c m[1][n] за собой тащить и обменивать m[0][n]
0
3 / 3 / 3
Регистрация: 23.06.2015
Сообщений: 38
01.02.2017, 16:25  [ТС]
Raali, Может ты имел ввиду m[i][0] и m[i][1] ?
Как это можно реализовать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
int maxx=m[0][2];
for(int i=0;i<sizeO;i++){
    for(int j=0;j<2;j++) {
       if(maxx>m[i+1][2]) {
        int pr = m[i][2];
        m[i][2] = m[i+1][2];
        pr = m[i][1];
        m[i][1]=m[i+1][1];
        m[i+1][1]=pr;
       }
    }
}
Только тут шибка , вместо 2-к нужно 1 , а вместо 1-ц 0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.02.2017, 16:25
Помогаю со студенческими работами здесь

Очередь на основе массива
Сделать очередь на основе массива с функциями: • добавление элемента в конец очереди • удаление элемента из начала очереди вот мой...

Очередь на основе массива
Сделал программу, которая создает очередь с помощью массива. Но работает она криво.Например, если ввести длину очереди 3 элемента, написать...

Очередь на основе динамического массива
Помогите найти ошибку, по заданию надо записать в очередь данные из файла, а при записи отрицательного числа программа должна извлечь все...

Очередь на основе статического массива
в очередь с экрана вводятся строки,когда вводится строка end,элементы извлекаются из очереди и записываются в файл. xD.h #include...

Кольцевая очередь на основе массива
pos - указывает на след элемент после головы start - начало Как проверять очередь на пустоту и заполненность? получается когда pos =...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru