![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Удаление объекта, стоящего между соседними элементами списка
При удалении элемента, занимающего промежуточную позицию в списке, происходит переключение связей таким образом, что поле ссылки элемента, стоящего перед удаляемым динамическим объектом, указывает на элемент, стоящий за удаляемым объектом.
EICut: = List; {устанавливаем указатель на удаляемый элементв начало списка} while EICut^.Link< > Nil do begin if EICut^.Data = Priznak then begin EIPred^.Link: = EICut^.Link; Disopose(EICut);
EICut: = EIPred^.Link End Else Begin ElPred: = EICut; EICut: = EICut^.Link End End Удаление последнего элемента списка
EIEnd: = List; {устанавливаем указатель последнего элемента списка}
while EIEnd^.Link < > Nil do {пока не достигнут конец списка} Begin ElPred: = ElEnd; {перемещение предыдущего элемента на следующую позицию} ElEnd: = ElEnd^.Link; {перемещение удаляемого элемента на следующую позицию} End; ElPred^. Link: = Nil; {установка предыдущего элемента последним}
|