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

Var k:list;

begin

k:=a;

result:=inttostr(k.key);

end;

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

function CreateE(a: T): PNode;

//Создаёт узел списка для элемента a и возвращает указатель на него.

begin

try

new(Result);

with Result^ do begin

Key:= a;

Next:= nil;

end;

except

on EOutOfMemory do begin

ShowMessage(‘Нет памяти‘);

Result:= nil;

end;

end;

end;

end.

program SList;

{$APPTYPE CONSOLE}

uses

SysUtils,

UList in 'UList.pas';

var

L: List = nil;

R: List = nil;

I: Integer;

begin

//-----------операция ListToStr-------------

writeln('**ListToStr**');

writeln('List L-> 0: | ',ListToStr(L));

//-----------операция ListToStr and AddL-------------

writeln('**AddL**');

AddL(L,3);

writeln('List L-> 1: 3|',ListToStr(L));

AddL(L,1);

writeln('List L-> 2: 1,3|',ListToStr(L));

AddL(L,5);

writeln('List L-> 3: 5,1,3 |',ListToStr(L));

empty(l);

//-----------операция ListToStr and AddR-------------

writeln('**AddR**');

writeln('List L-> 0: 0|',ListToStr(L));

AddR(L,3);

writeln('List L-> 1: 3|',ListToStr(L));

AddR(L,1);

writeln('List L-> 2: 3,1|',ListToStr(L));

AddR(L,5);

writeln('List L-> 3: 3,1,5 |',ListToStr(L));

//-----------операция EmptyList-------------

writeln('**Empty**');

Empty(L);

writeln('List L-> 0: | ',ListToStr(L));

Empty(L);

writeln('List L-> 0: | ',ListToStr(L));

//-----------операция H-------------

writeln('**H**');

for i:= 1 to 5 do AddL(L,i);

writeln('List L-> 5: 5,4,3,2,1| ',ListToStr(L));

for i:= 1 to 5 do writeln(H(L));

writeln('List L-> 0: | ',ListToStr(L));

empty(l);

writeln('**H_**');

//-----------операция H_-------------

for i:= 1 to 5 do AddL(L,i);

writeln('List L-> 5: 5,4,3,2,1| ',ListToStr(L));

for i:= 1 to 5 do writeln(H_(L));

writeln('List L-> 0: | ',ListToStr(L));

empty(l);

writeln('**Tail**');

//-----------операция Tail-------------

for i:= 1 to 5 do AddL(L,i);

writeln('List L-> 5: 5,4,3,2,1| ',ListToStr(L));

R:= Tail(L);

writeln('List L-> 1: 5| ',ListToStr(L));

writeln('List R-> 4: 4,3,2,1| ',ListToStr(R));

empty(l);

writeln('**Tail_**');

//-----------операция Tail_-------------

for i:= 1 to 5 do AddL(L,i);

writeln('List L-> 5: 5,4,3,2,1| ',ListToStr(L));

R:= Tail_(L);

writeln('List L-> 1: 1| ',ListToStr(L));

writeln('List R-> 4: 5,4,3,2| ',ListToStr(R));

empty(l);

empty(r);

writeln('**Merge**');

for i:= 1 to 5 do AddL(L,i);

writeln('List L-> 5: 5,4,3,2,1| ',ListToStr(L));

for i:= 1 to 5 do AddR(R,i);

writeln('List R-> 5: 1,2,3,4,5| ',ListToStr(R));

merge(l,r);

writeln('List L-> 10: 5,4,3,2,1,1,2,3,4,5| ',ListToStr(L));

writeln('**Number**');

writeln('List L-> 10: 10| ',number(l));

readln;

end.

Тестовые наборы:

Тестовый набор для тестирования операции СписокВСтроку

Номер теста

Исходные данные

Ожидаемый результат

Вход

Состояние списка

Возвращаемое значение

Состояние списка

1

L

()

Empty List

()

Тестовый набор для тестирования операции Опустошить

Номер теста

Исходные данные

Ожидаемый результат

Вход

Состояние списка

Возвращаемое значение

Состояние списка

1

L

(3,1,5)

Empty List

()

2

L

()

Empty List

()

Тестовый набор для тестирования операции ДобавитьСправа

Номер теста

Исходные данные

Ожидаемый результат

Вход

Состояние списка

Вводимое значение

Состояние списка

1

L

()

3

(3)

2

L

(3)

1

(3,1)

3

L

(3,1)

5

(3,1,5)

Тестовый набор для тестирования операции ДобавитьСлева

Номер теста

Исходные данные

Ожидаемый результат

Вход

Состояние списка

Вводимое значение

Состояние списка

1

L

()

3

(3)

2

L

(3)

1

(1,3)

3

L

(1,3)

5

(5,1,3)

Тестовый набор для тестирования операции Голова

Номер теста

Исходные данные

Ожидаемый результат

Вход

Состояние списка

Возвращаемое значение

Состояние списка

1

L

(5,4,3,2,1)

5

(4,3,2,1)

2

L

(4,3,2,1)

4

(3,2,1)

3

L

(3,2,1)

3

(2,1)

Тестовый набор для тестирования операции ГоловаСправа

Номер теста

Исходные данные

Ожидаемый результат

Вход

Состояние списка

Возвращаемое значение

Состояние списка

1

L

(5,4,3,2,1)

1

(5,4,3,2)

2

L

(5,4,3,2)

2

(5,4,3)

3

L

(5,4,3)

3

(5,4)

Тестовый набор для тестирования операции Хвост

Номер теста

Исходные данные

Ожидаемый результат

Вход

Состояние списка

Возвращаемое значение

Состояние списка

1

L

(5,4,3,2,1)

R=(4,3,2,1)

(5)

Тестовый набор для тестирования операции ХвостСправа

Номер теста

Исходные данные

Ожидаемый результат

Вход

Состояние списка

Возвращаемое значение

Состояние списка

1

L

(5,4,3,2,1)

R=(5,4,3,2)

(1)

Тестовый набор для тестирования операции Соединить

Номер теста

Исходные данные

Ожидаемый результат

Вход

Состояние списка

Возвращаемое значение

Состояние списка

1

L,R

L=(5,4,3,2,1)

R=(1,2,3,4,5)

Не определено.

(5,4,3,2,1,1,2,3,4,5)

Практическая работа. Стек целых чисел

Цель: Сформировать практические навыки реализации абстрактного типа данных Стека целых чисел на основе библиотечного абстрактного типа данных Списка целых чисел.

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