program Project1;
const
//Глубина стека. Т. е. максимальное количество элементов,
//которое может поместиться в стек.
N = 20;
type
//Тип, описывающий стек.
TStack = record
//Указатель вершины стека. Это индекс последнего добавленного элемента.
Pnt : Integer;
//Контейнер данных стека.
Data : array[1..N] of String;
end;
//Добавить в стек элемент.
function StackPush(var aStack : TStack; const aStr : String) : Boolean;
begin
StackPush := False;
with aStack do begin
if Pnt < High(Data) then begin
//Индекс добавляемого элемента.
Inc(Pnt);
//Добавляем элемент в массив (т. е. в стек).
Data[Pnt] := aStr;
StackPush := True;
end;
end;
end;
//Взять из стека элемент.
function StackPop(var aStack : TStack; var aStr : String) : Boolean;
begin
StackPop := False;
with aStack do begin
if Pnt >= Low(Data) then begin
aStr := Data[Pnt];
Dec(Pnt);
StackPop := True;
end;
end;
end;
var
St1, St2 : TStack;
S : String;
begin
//Инициализация стеков.
St1.Pnt := 0;
St2.Pnt := 0;
//Заливаем в первый стек исходные данные.
StackPush(St1, 'name');
StackPush(St1, 'fio');
StackPush(St1, 'ves');
StackPush(St1, 'age');
StackPush(St1, 'rost');
StackPush(St1, 'dlina');
//Удаление из стека двух заданных элементов.
//Решаем эту задачу с помощью переливания содержимого
//одного стека в другой стек.
while StackPop(St1, S) do begin
//Пропускаем значения, совпадающие с заданными.
if (S = 'dlina') or (S = 'fio') then Continue;
//Все остальные значения помещаем во второй стек.
StackPush(St2, S);
end;
//Переливаем значения обратно: из второго стека - в первый стек.
while StackPop(St2, S) do StackPush(St1, S);
//Добавляем новое значение.
StackPush(St1, 'size');
//Распечатываем значения из первого стека.
Writeln('Результат:');
while StackPop(St1, S) do Writeln(S);
Readln;
end.
Похожие записи/страницы:
- Написать программу, которая формирует стек, осуществляет добавление элементов в стек, удаление элементов по…
- Даны указатели P1 и P2 на вершины двух непустых стеков. Перемещать элементы из первого стека во второй, пока…
- Ввести символы, формируя из них стек. Вывести полученный стек на экран.Распечатать полученный стек.Удалить…
- Разработать алгоритм и программу решения задачи, в которой, используя стек вывести исходную строку символов в…
- Работа со стеком: каждая операция создание,удаление, добавление,показ элементов стека разделены на отдельные…
- Пусть дана последовательность из n элементов. Уменьшить её, удалив первый из отрицательных и минимальных из…
- Вводится неопределённое количество чисел и из них формируется список. Нужно создать второй список, который…
- Дан массив целых чисел. Найти минимальный элемент в массиве. Вставить после минимального элемента первый элемент…