7 / 7 / 1
Регистрация: 15.02.2015
Сообщений: 46
|
||||||
1 | ||||||
"Очередь" на основе динамического массива25.03.2015, 19:07. Показов 7992. Ответов 10
Метки нет (Все метки)
Как можно переделать чтобы не было ошибки "Предел памяти"?
Задача: реализация "очередь" на основе динамического массива.
0
|
25.03.2015, 19:07 | |
Ответы с готовыми решениями:
10
Очередь на основе динамического массива Очередь на основе динамического (статического) массива Очередь на основе динамического массива. Изучение функций ввода/вывода в программном интерфейсе Win32 Реализовать очередь с использованием динамического массива Реализовать очередь с использованием динамического массива |
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
25.03.2015, 19:09 | 2 |
Что за предел памяти такой загадочный? Заскринь оригинальную мессагу без отсебятины.
0
|
7 / 7 / 1
Регистрация: 15.02.2015
Сообщений: 46
|
|
25.03.2015, 20:11 [ТС] | 3 |
Реализуйте структуру данных "очередь" на основе циклического массива или другим способом.
Входные данные В каждой строке входных данных стоит либо команда PUSH и целое число через пробел, если элемент нужно поместить в очередь, либо команда POP, если нужно удалить очередной элемент из очереди. Максимальное количество элементов, одновременно находящихся в очереди, не превышает 100 тысяч. Максимальное количество команд не превышает 1 млн. Выходные данные Выведите по порядку все элементы, оставшиеся в очереди Пример входных данных PUSH 2 PUSH 5 PUSH 8 POP PUSH 1 Пример выходных данных 5 8 1 У нас в универе так организован практикум: решаешь задачу и отправляешь на проверку на сервер. Вот и выдает такие результаты: "Предел памяти" Ошибка компиляции", "Ошибка выполнения" и т.п.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
26.03.2015, 05:21 | 4 |
А сколько сказано использовать памяти?
Добавлено через 10 минут Кстати, это очередь не на массиве, а на списке.
0
|
7 / 7 / 1
Регистрация: 15.02.2015
Сообщений: 46
|
|
26.03.2015, 19:13 [ТС] | 5 |
В том то и дело: что не сказано сколько памяти использовать можно
(
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
26.03.2015, 19:26 | 6 | ||||||||||
Если проверяется потребление памяти, то должно быть сказано.
Добавлено через 6 минут В стартовом посте сказано только про массив. Если другим способом можно, то результат ручной проверки: ошибка в 52-й строке: точка с запятой завершает if, поэтому
Добавлено через 5 минут
0
|
7 / 7 / 1
Регистрация: 15.02.2015
Сообщений: 46
|
|
26.03.2015, 19:44 [ТС] | 7 |
Да, так и должно быть
Тут должно выдать на ошибку ввода любой команды, кроме PUSH и POP (я надеюсь правильно описала)
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
27.03.2015, 06:58 | 8 |
К чему твой else относится. Вот смотри:
1. Если экзит, то выходим, иначе, то есть если не экзит проверяем команды кроме экзита. 2. При проверке команд кроме экзита если пуш, то выполняем пуш, иначе, то есть если не пуш и не экзит проверяем команды кроме пуша и экзита. 3. При проверке команд кроме пуша и экзита если поп, то выполняем поп. Всё. И вдруг иначе команда не допустима. А что в данном случае значит "иначе"? Правильный компилятор должен на это сказать: "Егог: else без if.". А правильно так: 1. Если экзит, то выходим, иначе, то есть если не экзит проверяем команды кроме экзита. 2. При проверке команд кроме экзита если пуш, то выполняем пуш, иначе, то есть если не пуш и не экзит проверяем команды кроме пуша и экзита. 3. При проверке команд кроме пуша и экзита если поп, то выполняем поп, иначе, то есть если не поп, не пуш и не экзит выводим сообщение о недопустимой команде.
0
|
7 / 7 / 1
Регистрация: 15.02.2015
Сообщений: 46
|
||||||
27.03.2015, 13:33 [ТС] | 9 | |||||
Очередь.
Ограничение времени: 1 секунды Ограничение памяти: 1500КБ Преподаватель сказал исправить код, так как
Помогите, пжл
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||||||
27.03.2015, 13:39 | 10 | |||||
написано ж на основе массива, а вас получается на основе списка
1
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
27.03.2015, 19:42 | 11 |
Нет, этот блок использует всего 8 байт на элемент, да и то только при фактическом создании элемента. Сократить можно только реорганизовав очередь и отказавшись от списка. Для очереди интов на списке этот блок уже минимален. Ну можно сократить до пяти, если хранить чары, но это уже будет абсолютный минимум для очередей на списке. На массиве же можно сократить но четырёх на элемент + 8, 12, или 16 на всю очередь. Но реорганизация очереди - это переделывание почти всей программы. Задавай конкретные вопросы.
0
|
27.03.2015, 19:42 | |
27.03.2015, 19:42 | |
Помогаю со студенческими работами здесь
11
Очередь на основе массива Очередь на основе массива Очередь на основе массива Стек на основе динамического массива Стек на основе динамического массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |