Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентации 2часть / Лекция_23_24_ДинамическиеСписки.ppt
Скачиваний:
22
Добавлен:
11.05.2015
Размер:
232.45 Кб
Скачать

чтение последнего элемента

Procedure Tlistd.readk(var Inf:Tinf);

begin

sp:=spk; inf:=sp^.inf;

sp^.A1^.A2:=Nil;

spk:=sp^.A1;

dispose(sp);

end;

Аналогично составляются методы добавления элемента в конец списка и удаления начального элемента

07/02/19

51

Чтение и удаление последнего

 

 

nil

 

Inf

sp1

I

A1 A2

I

spk

nil

А2

I

A1

nil

sp

07/02/19

52

Добавление элемента после заданного в двухсвязный список

Procedure

Tlistd.AddAfter(Inf:TInf;spi:Tseld);

begin

New(sp);

sp^.Inf:=Inf;

sp^.A1:=spi;

sp^.A2:=spi.A2;

spi^.A2:=sp;

sp^.A2^.A1:=sp;

end;

07/02/19

53

Добавление после заданного

sp1

I

 

A1 A2

I

spk

nil

А2

 

I

A1

nil

 

 

spi

A1

A2

 

 

 

 

 

 

 

 

sp

I

 

Inf

07/02/19

54

Добавление элемента перед заданным

Procedure

Tlistd.AddBeford(Inf:TInf;spi:Tseld);

begin

New(sp);

sp^.Inf:=Inf;

sp^.A2:=spi;

sp^.A1:=spi.A1;

Spi^.A1:=sp;

sp^.A1^.A2:=sp;

end;

07/02/19

55

Чтение и удаление элемента с адресом spi

Procedure

Tlistd.Read(var Inf:TInf;spi:Pseld);

begin

Inf:=spi^.Inf;

spi^.A1^.A2:=spi^.A2;

spi^.A2^.A1:=spi^.A1;

Dispose(spi);

end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

spk

sp1

 

 

 

I

 

 

 

A1

A2

 

 

 

I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nil

 

А2

 

 

 

I

 

 

 

A1

 

nil

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

07/02/19

spi

56

 

Контрольные вопросы

Что такое список, очередь, стек, для чего они нужны?

Как организовать работу со списком на основе динамического массива?

Напишите рекурсивный тип данных и объясните, как с его помощью организуется однонаправленный список.

Что такое косвенная адресация?

Опишите класс для работы со списком. Поясните особенности работы со стеком и очередью.

Напишите метод распечатки списка.

Как организуется список с меткой и когда его целесообразно использовать? Понятие циклического списка.

07/02/19

57

Задача на экзамен

Составить программу работы со списком на основе одномерного динамического массива.

oФамилию a.f и учетный номер a.k добавляемой записи читать из первой строки StringGrid1.

oСостояние текущего списка из n записей отражать в n строках StringGrid2.

oУчетный номер удаляемой записи ввести из Edit1.

В отдельном модуле написать класс, содержащий следующие методы:

oсоздание начального динамического массива

Create;

oдобавление новой записи в конец списка Аddk;

oЧтение с удалением записи из начала списка

Read1.

07/02/19

58

Конец темы

• Ваши вопросы

07/02/19

59