alarm
Задайте вопрос
Информатика
elicit

Очередь с поддержкой минимумаРеализуйте очередь с поддержкой минимума. Входные данныеПервая строка входных данных содержит число n — количество операций с очередью. В каждой следующей строке содержится число ai (0≤ai≤10000). Если ai>0, то это число необходимо добавить в очередь. Если ai=0, то это запрос на удаление элемента из очереди. Выходные данныеНа каждый запрос удаления элемента из очереди необходимо вывести значение минимального элемента очереди (учитывая значение удаляемого элемента). Если запрос удаления вызывается на пустой очереди, то необходимо вывести −1. ПримерыВвод9543600000Вывод3336-1Решать на C++

ответы: 1
Зарегистрируйтесь, чтобы добавить ответ
Ответ:

:

#include <iostream>

using namespace std;

const int max_size = 2000;

class Queue //класс Очередь

{

int q[max_size]; //массив чисел

int left = 0, right = 0; //первый(крайний левый) и последний(крайний правый) элементы массива

public:

void add(int a); //функция для добаления элемента в очередь

void getMinNum(); //функция для получения минимального числа в очереди

};

void Queue::add(int a)

{

if (a != 0)

{ //если введено число больше 0

q[right] = a;

right++;

}

else if (left == right)

{ //если первый и последний элементы совпадают, очередь пуста

cout << -1 << "n";

}

else

{ //если введен '0'

this->getMinNum();

left++;

}

}

void Queue::getMinNum()

{

int minID = left;

for (int i = left; i < right; i++)

if (q[minID] > q[i])

minID = i;

cout << q[minID] << "n";

}

int main()

{

int n; //количество операций

Queue q; //объект класса Очередь

int num;

cin >> n;

for (int i = 0; i < n; i++)

{

cin >> num; //вводим число

q. add(num);

}

return 0;

}

411
Leroy Yves
Чтобы ответить необходимо зарегистрироваться.

Другие вопросы: - Информатика

Факториал натурального числа n о

Напишите программу, которая подс

Даны два числа. Определить цифры

Симметричен ли массив?Дано число

Задание ПО ПИТОНУТрискайдекафоби

какое десктопное приложение можн

Контакты
Реклама на сайте