Удалить элемент, находящийся в середине стека, если число элементов нечётное, или 2 средних элемента, если чётное - Pascal

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

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

Удалить элемент, находящийся в середине стека , если число элементов нечетное, или 2 средних элемента, если число элементов четное.

Решение задачи: «Удалить элемент, находящийся в середине стека, если число элементов нечётное, или 2 средних элемента, если чётное»

textual
Листинг программы
. . .
count := stack.count;
if odd(count) then
  begin
    for i := 1 to count div 2 do tmp.push(stack.pop);
    stack.pop;
    for i := 1 to count div 2 do stack.push(tmp.pop);
  end
else
  begin
    for i := 1 to count div 2-1 do tmp.push(stack.pop);
    stack.pop;
    stack.pop;
    for i := 1 to count div 2-1 do stack.push(tmp.pop);
  end;
. . .

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

В данном коде решается задача удаления определённого элемента из стека.

  1. Переменная count инициализируется значением счётчика элементов в стеке.
  2. Если счётчик нечётный, то выполняется первый блок кода.
  3. В первом блоке кода создаётся временный стек tmp, в который сдвигаются элементы из исходного стека, начиная со второго и заканчивая предпоследним.
  4. В исходном стеке удаляется последний элемент.
  5. Элементы из временного стека возвращаются в исходный стек, начиная с первого и заканчивая последним.
  6. Если счётчик чётный, то выполняется второй блок кода.
  7. Во втором блоке кода создаётся временный стек tmp, в который сдвигаются элементы из исходного стека, начиная со второго и заканчивая предпоследним.
  8. В исходном стеке удаляются два последних элемента.
  9. Элементы из временного стека возвращаются в исходный стек, начиная с первого и заканчивая предпоследним.

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


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

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

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