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

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

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

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

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

textual
Листинг программы
  1. program pr;
  2. type
  3.   titem = integer;
  4.   pstack = ^tstack;
  5.   tstack =
  6.   record
  7.     data : titem;
  8.     next : pstack;
  9.   end;
  10.  
  11. procedure push(var s : pstack; X : titem);
  12. var q : pstack;
  13. begin
  14.   new(q);
  15.   q^.next := s;
  16.   q^.data := X;
  17.   s := q;
  18. end;
  19.  
  20. function pop(var s : pstack) : titem;
  21. var q : pstack;
  22. begin
  23.   result := s^.data;
  24.   q := s;
  25.   s := s^.next;
  26.   dispose(q);
  27. end;
  28.  
  29. procedure print(s : pstack); // для проверки
  30. begin
  31.   while s <> nil do
  32.   begin
  33.     write(s^.data:4);
  34.     s := s^.next;
  35.   end;
  36.   writeln;
  37. end;
  38.  
  39. var
  40.   s1 : pstack;
  41.   s2 : pstack;
  42.   it,max :titem;
  43.  i,max_i:integer;
  44.  p,pp:pstack;
  45. begin
  46. s1:=nil;
  47. s2:=nil;
  48.   randomize;
  49.   for i := 1 to 10 do
  50.     push(s1, random(50));
  51.   print(s1);
  52.  
  53.   max:=s1^.data;
  54.   while(s1<>nil) do
  55.   begin
  56.     it := pop(s1);
  57.     inc(i);
  58.     if it <> max then
  59.     push(s2, it);
  60.   end;
  61.  
  62.   while (s2<>nil) do
  63.   begin
  64.     it := pop(s2);
  65.      push(s1,it);
  66.     dec(i);
  67.   end;
  68.   print(s1);
  69. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы