Создать стек со случайными целыми числами. Удалить все элементы, равные первому - 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.
Объяснение кода листинга программы
- Объявляются типы данных:
titem
- целочисленный тип данных иpstack
- указатель на стек. - Объявляется структура
tstack
с полямиdata
- данные типаtitem
иnext
- указатель на следующий элемент стека. - Описывается процедура
push
, которая добавляет элемент в стек: создаётся новый элементq
, данные и указатель присваиваются, и этот элемент становится вершиной стекаs
. - Описывается функция
pop
, которая удаляет элемент из стека, возвращая его значение: результатом становится значение верхнего элемента стека, верхний элемент удаляется, освобождается память. - Описывается процедура
print
для вывода стека на экран. - Объявляются переменные:
s1
иs2
- указатели на стек,it
иmax
- переменные типаtitem
,i
иmax_i
- переменные целочисленного типа,p
иpp
- указатели на стек. - Создается пустой стек
s1
иs2
. - Генерируются случайные числа и добавляются в стек
s1
. - Находится максимальный элемент в стеке
s1
. - Удаляются все элементы из
s1
, которые не равны максимальному, и добавляются вs2
. - Элементы из
s2
добавляются обратно вs1
. - Выводится измененный стек
s1
на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д