Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
02.01.2020
Размер:
41.02 Кб
Скачать

Задание

  1. Реализовать тип Стек целых чисел, в соответствии с приведенной ниже спецификацией.

  2. Протестировать каждую операцию, определенную на типе.

Текст программы:

unit UStack;

Interface

uses UList;

type

Stack = PList;

// --Операции на стеке---------------------------------------------------------

function CreateStack: Stack;

// --------------------Создать пустой стек------------------------------------

function StackToStr(S:stack):string;

// --------------------Выводит значения элементов стека в строку-------------

function Size(S:Stack):integer;

// --------------------Число элементов стека-----------------------------------

function Peek(S:Stack):integer;

// --------------------Стек пуст----------------------------------------------

function IsEmpty(S:Stack):boolean;

// --------------------Взять элемент стека------------------------------

procedure EmptyStack(S:Stack);

// --------------------Добавить элемент в стек------------------------

procedure Push(S:Stack; E:integer);

// --------------------Опустошить стек----------------------------------------

function Pop(S:Stack):integer;

//---------------------Освобождает выделенную под стек память-----------------

procedure DelStack(var S:stack);

//----------------------

Implementation

//------------------------------------------------------------------------------

function CreateStack: Stack;

//Создаёт пустой стек

begin

Result:= CreateL;

end;

function StackToStr(S:stack):string;

begin

Result:=ListToStr(S);

end;

function Size(S:Stack):integer;

begin

Result:=Size(S);

end;

function Peek(S:Stack):integer;

begin

result:=Head_watch(S);

end;

function IsEmpty(S:Stack):boolean;

begin

Result:=IsEmpty(S);

end;

procedure EmptyStack(S:Stack);

begin

Result:=EmptyList(S);

end;

procedure Push(S:Stack, E:integer);

begin

Result:=AddLeft(S,E);

End;

Procedure DelStack(var S:stack);

Begin

DelList(s);

End;

end.

program PStack;

{$APPTYPE CONSOLE}

uses

SysUtils,

UStack in 'UStack.pas',

Var s: Stack;

begin

S:= CreateStack;//Создание стека

writeln(StackToStr(s));//Вывод содержимого стека на консоль

Push(S,1);//Положить в стек

Push(S,2); //Положить в стек

Push(S,3); //Положить в стек

Push(S,4); //Положить в стек

writeln(StackToStr(s)); //Вывод содержимого стека на консоль

writeln(Pop(S));//Извлечение из стека

writeln(Pop(S)); //Извлечение из стека

writeln(StackToStr(s)); //Вывод содержимого стека на консоль

EmptyStack(s);//Опустошает стек

writeln(StackToStr(s)); //Вывод содержимого стека на консоль

DelStack(s);//Удаляет стек из памяти

readln;

end.

Соседние файлы в папке Зайцев М. Г.