В заданном стеке найти максимальный элемент и удалить все элементы с таким значением - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

В заданном стеке найти максимальный элемент и удалить все элементы с таким значением. (Искать, перекладывая в дополнительный стек, удалять при перекладывании обратно: [7, -3, 3, 7], получили [-3,3]

Решение задачи: «В заданном стеке найти максимальный элемент и удалить все элементы с таким значением»

textual
Листинг программы
begin
  var s := New Stack<integer>;
  var v : Integer;
 
  WriteLn('Введите элементы стека (окончание ввода - 0) :');
  repeat
    v := ReadInteger;
    if v <> 0 then s.Push(v);
  until v = 0;
  if s.Count = 0 then
    begin
      WriteLn('Ну мы не можем работать с пустым стеком!'); Halt;
    end;
  WriteLn('Сформирован стек:'); s.Println;
  
  var t := New Stack<integer>;
  v := s.Peek;
  while s.Count > 0 do
    begin
      if v < s.Peek then v := s.Peek;
      t.Push(s.Pop);
    end;
  WriteLn('Максимальный элемент стека = ', v);
  
  while t.Count > 0 do
    if v = t.Peek then
      t.Pop
    else
      s.Push(t.Pop);
  WriteLn('Стек с удалёнными максимальными значениями:'); s.Println;
end.

Объяснение кода листинга программы

В данном коде используется стек, в котором хранятся целые числа. Пользователю предлагается ввести элементы стека, после чего выводится сообщение о сформированном стеке. Затем из стека извлекается максимальный элемент, и все элементы со значением равным максимальному удаляются из стека. В конце выводится сообщение о стеке, из которого были удалены все элементы с максимальным значением. Код можно разделить на следующие части:

  1. Создание пустого стека и переменной для хранения максимального элемента.
  2. Ввод элементов стека с помощью цикла и проверка на пустой стек.
  3. Вывод сообщения о сформированном стеке.
  4. Создание нового стека для хранения элементов, которые не являются максимальными.
  5. Извлечение максимального элемента из стека.
  6. Удаление всех элементов со значением равным максимальному.
  7. Вывод сообщения о стеке, из которого были удалены все элементы с максимальным значением.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы