![]() |
|
Модераторы: bsa |
![]()
|
|
| shilovec5377 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 15.5.2013 Репутация: нет Всего: нет |
Всем привет. помогите с условием:
Преобразовать стек в 2 стека. В первый поместить все четные, а во второй нечетные числа.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
shilovec5377, у стека есть три основных метода:
1. запихать что-то в стек (push) 2. вытащить из стека (pop) 3. получить содержимое "вершины" стека (top) - элемента добавленного последним. Взять i-й элемент ты не можешь по определению. Только верхний (последний). Вот и придумай алгоритм. Кстати, твоя функция печати стека выводит только элемент добавленный последним. Причем, делает это крайне неоптимально. Похоже, что-то было взято из очереди. |
|||
|
||||
| Guinness |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: 2 Всего: 10 |
||||
|
||||
| shilovec5377 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 15.5.2013 Репутация: нет Всего: нет |
подскажите пожалуйста как можно сделать: Преобразовать стек в 2 стека. В первый поместить все четные, а во второй нечетные числа.
|
|||
|
||||
| feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Вау. А ведь ещё каплок есть и жирный фонт))) И буквы в полэкрана...
А печать переделать нужно, а то она разрушает печатаемый стек... Это сообщение отредактировал(а) feodorv - 15.5.2013, 19:18 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Разрушает? Это же рекурсивная функция!
shilovec5377, делай по аналогии с функцией печати. Только передавай не один стек, а два - второй для отрицательных чисел. |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Ага, рекурсия только созидает)))
Да, и чтобы сохранить изначальный порядок следования элементов, придётся использовать ещё один временный стек, в который нужно будет запихнуть значения в обратном порядке по отношению к изначальному стеку. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
feodorv, сделай трассировку этой функции. Она добавляет в стек после работы рекурсивного вызова, поэтому порядок сохраняется.
|
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
О, слона-то я и не заметил)))
А слон красивый))) -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |