Добавить в вершину стека число, которое вводиться с клавиатуры. - Free Pascal
Формулировка задачи:
Создать стек со случайными целыми числами в диапазоне [- 120;10]. Добавить в вершину стека число, которое вводиться с клавиатуры.
Решение задачи: «Добавить в вершину стека число, которое вводиться с клавиатуры.»
textual
Листинг программы
program pr;
type
item = integer;
prec = ^trec;
trec = record
num : item;
next : prec;
end;
procedure print(stack : prec);
begin
while stack <> nil do
begin
writeln(stack^.num);
stack := stack^.next;
end;
end;
procedure push(var stack : prec; v : item);
var t : prec;
begin
new(t);
t^.num := v;
t^.Next := Stack;
Stack := t;
end;
var
i : integer;
c : item;
stack : prec = nil;
begin
randomize;
for i := 1 to 10 do
push(stack, random(131)-120);
print(stack);
writeln;
writeln('Введите добавляемый элемент');
readln(c);
writeln;
writeln('Стек с добавленным в вершину элементом');
push(stack,c);
print(stack);
// тут не забываем очистить стек, иначе будет утечка
end.
Объяснение кода листинга программы
- Объявление типа данных
itemиprecдля работы со стеком. - Создание процедуры
printдля вывода элементов стека. - Создание процедуры
pushдля добавления элемента в стек. - Объявление переменных
i,cиstackдля работы со стеком. - Инициализация стека как
nil. - Заполнение стека случайными числами от 1 до 10 с помощью цикла и процедуры
push. - Вывод содержимого стека с помощью процедуры
print. - Запрос на ввод добавляемого элемента с клавиатуры.
- Добавление введенного элемента в вершину стека с помощью процедуры
push. - Вывод стека после добавления элемента с помощью процедуры
print. - Очистка стека после использования (необязательно, но важно для предотвращения утечки памяти).