Ваше первое решение принимает максимальное значение в качестве параметра, а второе - нет.Я предполагаю, что у нас нет максимального значения, и мы вычислим его при обработке стека.
Основной подход должен быть в первую очередь думать о логике.
Шаг 1.) Нам нужно вытолкнуть все элементы, чтобы найти максимальный элемент в стеке.Также нам нужно хранить все значения, которые мы извлекли, в другом стеке (скажем, вспомогательный ).Теперь мы знаем о максимальном значении (скажем, MAX ).
Шаг 2.) Обратите внимание, что теперь у нас будет стек в обратном порядке.Извлеките все элементы из вспомогательного стека и, если значение не является максимальным, вставьте их в исходный стек.
Данные вначале,
Original Stack: 1->2->3->4->100->5->7->NULL
Auxiliary Stack: NULL
Данные после первого шага,
Original Stack: NULL
Auxiliary Stack: 7->5->100->4->3->2->1->NULL
MAX: 100
Наконец,
Original Stack: 1->2->3->4->5->7->NULL
Auxiliary Stack: NULL
Попробуйте написать код для этого.Оба ваших решения работают не так, как ожидалось.