3.2 Процедура удаления
программный двунаправленный сортировка алгоритм
Если удаляемый элемент находится в середине списка, тогда выполняется следующий алгоритм.
В поле DownPointer следующего за удаляемым звена заносится ссылка на предшествующее удаляемому звено.
В поле UpPointer предшествующего удаляемому звена заносится ссылка на следующее за удаляемым звено.
Уничтожается удаляемое звено.
Если удаляемый элемент находится в начале списка, тогда в поле DownPointer следующего за удаляемым звена заносится Null и уничтожается удаляемое звено.
Если удаляемый элемент находится в конце списка, тогда в поле UpPointer предшествующего удаляемому звена заносится Null и так же уничтожается удаляемое звено.
Процедура RemoveSubj. удаление элемента из списка.
procedure RemoveSubj(marker:PointerSubjs);
{процедура удаления элемента}
var tmp:PointerSubjs;
begin
if(marker <> NIL) then
begin
{если элемент единственный}
if (marker^.UpPointer = nil) and (marker^.DownPointer = nil) then
begin
SubjList:=nil;
Dispose(marker);
end
else
if (marker^.UpPointer = NIL) then {удаление, если текущее звено первое}
begin
SubjList := marker^.DownPointer;
SubjList^.UpPointer := NIL;
Dispose(marker);
end
else
if (marker^.DownPointer = NIL) then {удаление, если текущее звено последнее}
begin
tmp := marker;
marker := marker^.UpPointer;
marker^.DownPointer := NIL;
Dispose(tmp);
end
else {удаление в остальных случаях, когда звено в середине списка}
begin
tmp := marker;
marker := marker^.UpPointer;
marker^.DownPointer := tmp^.DownPointer;
marker := marker^.DownPointer;
marker^.UpPointer := tmp^.UpPointer;
Dispose(tmp);
end;
end;
end;
- Этапы разработки программного обеспечения
- Этапы разработки программного обеспечения.
- Разработка программного обеспечения
- 3.3. Разработка программного обеспечения.
- Разработка программного обеспечения
- Технология разработки программного обеспечения
- Этапы разработки программного обеспечения
- 43. Разработка программного обеспечения