Создать стек из случайных целых чисел. Развернуть стек, т.е. «дно» стека сделать вершиной, а вершину – «дном» - Free Pascal
Формулировка задачи:
Создать стек из случайных целых чисел. Развернуть стек, т.е. «дно» стека сделать вершиной, а вершину – «дном».
Решение задачи: «Создать стек из случайных целых чисел. Развернуть стек, т.е. «дно» стека сделать вершиной, а вершину – «дном»»
textual
Листинг программы
- type
- PStack = ^TStack;
- TStack =
- record
- data : integer;
- next : PStack;
- end;
- procedure Push(var s : PStack; v : integer);
- var t : PStack;
- begin
- new(t);
- t^.data := v;
- t^.next := s;
- s := t;
- end;
- function Pop(var s : PStack) : integer;
- var t : PStack;
- begin
- if s <> nil then
- begin
- Pop := s^.data;
- t := s;
- s := s^.next;
- dispose(t);
- end;
- end;
- procedure Print(s : PStack);
- var t : PStack;
- begin
- t := s;
- while t <> nil do
- begin
- write(t^.data:4);
- t := t^.next;
- end;
- writeln;
- end;
- var
- s, t : PStack;
- i : integer;
- begin
- s := nil;
- for i := 1 to 5 do Push(s, Random(100));
- Print(s); // созданный стек
- t := nil;
- while s <> nil do Push(t, Pop(s));
- s := t;
- Print(s); // "перевернутый" стек
- while s <> nil do Pop(s); // освобождаем память
- end.
Объяснение кода листинга программы
- Объявлены типы данных PStack и TStack для представления стека.
- Создана процедура Push для добавления элемента в стек.
- Создана функция Pop для удаления элемента из стека.
- Создана процедура Print для вывода содержимого стека.
- Объявлены переменные s и t типа PStack для работы со стеком.
- Переменная s инициализируется как nil.
- В цикле создается пять элементов и добавляется в стек с помощью процедуры Push.
- Выводится содержимое стека с помощью процедуры Print.
- Переменная t инициализируется как nil.
- В цикле, пока стек s не пуст, элементы из него добавляются в стек t с помощью процедуры Push.
- Переменная s заменяется на t.
- Содержимое стека t выводится с помощью процедуры Print.
- Пока стек s не пуст, элементы из него удаляются с помощью функции Pop.
- Завершающая инициализация стека t.
- Цикл для освобождения памяти.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д