Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2013, 20:16   #1
akademochka
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 44
По умолчанию Максимум в стеке

Стек обычный типа stack<int> s;
Помогите найти максимум в стеке
Код:
int max=0;
    while(!s.empty())
    {
    if((s.top())>max)
         {max=s.top();}
                s.pop();    
               
                 }
Это, естественно, не работает
akademochka вне форума Ответить с цитированием
Старый 12.03.2013, 21:13   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Почему естественно?
А так?
Код:
int max = 0;
if (!s.empty()) {
    stack<int> tmp = s;
    max = tmp.top();
    tmp.pop();
    while(!tmp.empty()) {
        max = (tmp.top() > max) ? tmp.top() : max;
        tmp.pop(); 
    }                
}
Это чтобы сохранить сам стек s нетронутым.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 12.03.2013, 21:34   #3
akademochka
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 44
По умолчанию

а если попроще?
akademochka вне форума Ответить с цитированием
Старый 12.03.2013, 21:45   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Попроще вряд ли.
Нужно пройти все элементы стека. Наверное, сам стек тоже не нужно потерять. По-моему, это простейший способ.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 12.03.2013, 22:52   #5
akademochka
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 44
По умолчанию

Все равно, спасибо, просто это решение превышает лимит времени
akademochka вне форума Ответить с цитированием
Старый 12.03.2013, 23:19   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Тогда попробуйте сохранять максимум при заполнении стека.
Напишите все условие, а то так можно советовать невпопад долго
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
количество элементов в стеке svkpro Помощь студентам 8 30.11.2012 22:40
Pascal. Сортировка в стеке aleksandrbol Помощь студентам 5 04.12.2011 20:10
Массивы переменного размера в стеке Voyager Общие вопросы C/C++ 3 10.04.2008 11:33