Создать стек со случайными целыми числами. Удалить все элементы, равные первому - Pascal

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

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

Создать стек со случайными целыми числами. Удалить все элементы, равные первому.

Решение задачи: «Создать стек со случайными целыми числами. Удалить все элементы, равные первому»

textual
Листинг программы
program pr;
type
  titem = integer;
  pstack = ^tstack;
  tstack =
  record
    data : titem;
    next : pstack;
  end;
 
procedure push(var s : pstack; X : titem);
var q : pstack;
begin
  new(q);
  q^.next := s;
  q^.data := X;
  s := q;
end;
 
function pop(var s : pstack) : titem;
var q : pstack;
begin
  result := s^.data;
  q := s;
  s := s^.next;
  dispose(q);
end;
 
procedure print(s : pstack); // для проверки
begin
  while s <> nil do
  begin
    write(s^.data:4);
    s := s^.next;
  end;
  writeln;
end;
 
var
  s1 : pstack;
  s2 : pstack;
  it,max :titem;
 i,max_i:integer;
 p,pp:pstack;
begin
s1:=nil;
s2:=nil;
  randomize;
  for i := 1 to 10 do
    push(s1, random(50));
  print(s1);
  
  max:=s1^.data;
  while(s1<>nil) do
  begin
    it := pop(s1);
    inc(i);
    if it <> max then
    push(s2, it);
  end;
 
  while (s2<>nil) do 
  begin
    it := pop(s2);
     push(s1,it);
    dec(i);
  end;
  print(s1);
end.

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

  1. Объявляются типы данных: titem - целочисленный тип данных и pstack - указатель на стек.
  2. Объявляется структура tstack с полями data - данные типа titem и next - указатель на следующий элемент стека.
  3. Описывается процедура push, которая добавляет элемент в стек: создаётся новый элемент q, данные и указатель присваиваются, и этот элемент становится вершиной стека s.
  4. Описывается функция pop, которая удаляет элемент из стека, возвращая его значение: результатом становится значение верхнего элемента стека, верхний элемент удаляется, освобождается память.
  5. Описывается процедура print для вывода стека на экран.
  6. Объявляются переменные: s1 и s2 - указатели на стек, it и max - переменные типа titem, i и max_i - переменные целочисленного типа, p и pp - указатели на стек.
  7. Создается пустой стек s1 и s2.
  8. Генерируются случайные числа и добавляются в стек s1.
  9. Находится максимальный элемент в стеке s1.
  10. Удаляются все элементы из s1, которые не равны максимальному, и добавляются в s2.
  11. Элементы из s2 добавляются обратно в s1.
  12. Выводится измененный стек s1 на экран.

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


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

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

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