0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 8
|
|
1 | |
Очередь на основе массива24.03.2014, 23:37. Показов 9519. Ответов 3
Метки нет (Все метки)
Очередью (англ. 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 Для отправки решений необходимо выполнить вход.
0
|
24.03.2014, 23:37 | |
Ответы с готовыми решениями:
3
Очередь на основе массива Очередь на основе массива Очередь на основе динамического массива Очередь с приоритетом на основе массива |
0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 8
|
|
29.03.2014, 21:49 [ТС] | 2 |
помогите ну... две функции написать, front и size..
остальное написала, точнее собрала
0
|
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
|
|
29.03.2014, 21:55 | 3 |
Мне кажется, или вам осталось написать самые простые функции? В чем у вас с ними загвоздка?
0
|
0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 8
|
||||||
31.03.2014, 20:43 [ТС] | 4 | |||||
неправильно работают
Добавлено через 1 минуту
0
|
31.03.2014, 20:43 | |
31.03.2014, 20:43 | |
Помогаю со студенческими работами здесь
4
Очередь на основе статического массива Очередь на основе динамического (статического) массива Реализовать двунаправленную очередь на основе одномерного символьного массива Очередь на основе массива: объяснить что происходит в заданном фрагменте кода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |