Лабораторная работа: Структуры и алгоритмы обработки данных

Else //иначе

Begin

qq:=sag^.next; //запоминаем адрес первого элемента

q:=qq^.next; //запоминаем адрес второго элемента

if (q^.next= Nil) then {если адресная часть второго элемента указывает на конец списка (это означает что в ЛОС только два элемента)}

Begin

sag^.next:=Nil; {в адресную часть начала ЛОС заносим указатель на конец списка}

dispose(q); //удаляем адрес первого элемента

dispose(q); //удаляем адрес второго элемента

End

Else //иначе

Begin

q:= sag^.next; //запоминаем адрес второго элемента

sag^.next:=q^.next; {в адресную часть первого элемента заносим адрес второго элемента}

dispose(k); //удаляем адрес первого элемента

q:= sag^.next; //запоминаем адрес первого элемента

qq:=q^.next; //запоминаем адрес второго элемента

While (q<>Nil)do {цикл удаления последнего элемента

проходим по списку, до тех пор, пока указатель не будет равен значению, указателя на конец списка}

Begin

kk:=q; //запоминаем адрес текущего элемента

q:=q^.next; //запоминание следующего адреса

k:= qq; //запоминаем адрес следующего элемента

qq:=qq^.next; //запоминание следующего адреса

ifqq=Nilthen {если адресная часть следующего элемента указывает на значение конца списка значит мы нашли адрес последнего элемента ЛОС}

Begin

kk^.next:= qq; {заносим в адресную часть предыдущего элемента значение конца списка}

q:=kk^.next; {запоминание в переменную указателя, значение конца списка для выхода из цикла}

dispose(k); //удаляем адрес последнего элемента

К-во Просмотров: 571
Бесплатно скачать Лабораторная работа: Структуры и алгоритмы обработки данных