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

Очередь на основе массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка кода Syntax error: missing ')' before ';' http://www.cyberforum.ru/cpp-beginners/thread1128847.html
В чем ошибка данного кода double b; double c; double m; double a=(2+sin(2.0)/(sin(5.0)+5); cout<<a<<endl;
C++ Перегрузка операторов Как написать код перегрузки операторов (+= и --) чтобы выполнялось действие v1+=v2--; v1 и v2 - массив чисел http://www.cyberforum.ru/cpp-beginners/thread1128840.html
Опрос внешних устройств с периодом 1мс C++
Здравствуйте! Подскажите, пожалуйста, возможно ли решить следующую задачу: От внешнего генератора идут импульсы частотой 1 кГц. Необходимо по фронту импульса произвести выдачу информации ( занимает 200 мкс) и чтение информации (занимает 100 мкс). Таким образом остается 700 мкс свободных. Вопрос: Реализовали все в бесконечном цикле. Программа все время ждет фронт и по фронту выполняет указанные...
C++ Как функцией rand() генерировать упорядоченные тройки различных чисел
Как функцией rand() генерировать упорядоченные тройки различных чисел от [0; 1000) не используя ни циклов, ни условий, ни условных операторов?
C++ Вычислить значение выражения http://www.cyberforum.ru/cpp-beginners/thread1128834.html
Дано натуральное число n и действительные числа a1 , а2, …, an. Посчитать S=a1^(n)-a2^(n-1)+...+(-1)^(n+1)*an.Самым простым способом
C++ Поиск всех файлов в папке и вывод их имен Пытаюсь сделать программку, которая будет выводить название всех файлов формата .txt в определенной папке, но что-то не могу разобраться с FindFirstFile / FindNextFile и в интернете подробно ничего как-то не описывается. Может у кого-нибудь есть материал по этой теме, хочется разобраться. Добавлено через 1 минуту P.S забыл написать, что надо для Visual Studio подробнее

Показать сообщение отдельно
Masha95
0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 8
24.03.2014, 23:37     Очередь на основе массива
Очередью (англ. queue) называется хранилище данных, в котором можно работать только с одним элементом: тем, который был добавлен в стек первым. Очередь должна поддерживать следующие операции:

push
Добавить (положить) в конец стека новый элемент
pop
Извлечь из стека первый элемент
front
Узнать значение первого элемента (не удаляя его)
size
Узнать количество элементов в стеке
clear
Очистить стек (удалить из него все элементы)
Хранить элементы стека в массиве.

Реализуйте структуру данных "очередь", реализовав все указанные здесь методы при помощи массива. Напишите программу (функцию main), содержащую описание очереди и моделирующую работу очереди. Функция main считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения одной команды программа должна вывести одну строчку. Возможные команды для программы:

push n
Добавить в очередь число n (значение n задается после команды). Программа должна вывести ok.
pop
Удалить из очереди первый элемент. Программа должна вывести его значение.
front
Программа должна вывести значение первого элемента, не удаляя его из очереди.
size
Программа должна вывести количество элементов в очереди.
clear
Программа должна очистить очередь и вывести ok.
exit
Программа должна вывести bye и завершить работу.
Операции front и pop должны перед исполнением проверять, содержится ли в очереди хотя бы один элемент. Если во входных данных встречается операция front или pop, при этом очередь пуста, то программа должна вместо числового значения вывести строку error.
При этом должна быть реализована двойная защита: вызов методов forward и pop для пустой очереди не должен приводить к обращению к несуществующим элементам массива, а функция main должна выводить сообщение error, при считывании некорректной операции.

Реализуйте очередь динамического размера, то есть ограниченный только объемом свободной оперативной памяти. Для этого используйте указатели и динамически распределяемую память. Если для полностью заполненной очереди вызывается метод push размер динамического массива, отведенного для хранения очереди, должен увеличиваться.

Пример 1 протокола работы программы

Ввод Вывод

push 2 ok
push 3 ok
push 5 ok
front 2
size 3
pop 2
size 2
push 7 ok
pop 3
clear ok
size 0
exit bye
Пример 2 протокола работы программы

Ввод Вывод

push 2 ok
front 2
pop 2
size 0
pop error
push 1 ok
size 1
exit bye
Для отправки решений необходимо выполнить вход.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru