Удаление элемента из списка
А)Удаление первого элемента. Для этого во вспомогательном указателе запомним первый элемент, указатель на голову списка переключим на следующий элемент списка и освободим область динамической памяти, на которую указывает вспомогательный указатель. x:= u; u:= u^.next; dispose(x); Б) Удаление элемента из середины списка. Для этого нужно знать адреса удаляемого элемента и элемента, стоящего перед ним. Допустим, что digit – это значение удаляемого элемента.
x:= u; while (x<> nil) and (x^. inf<> digit) do begin dx:= x; x:= x^.next; end; dx:= x^.next: dispose(x); В)Удаление из конца списка. Для этого нужно найти предпоследний элемент. x:= u; dx:= u; while x^.next<> nil do begin dx:= x; x:= x^.next; end; dx^.next:= nil; dispose(x); Прохождение списка. Важно уметь перебирать элементы списка, выполняя над ними какую-либо операцию. Пусть необходимо найти сумму элементов списка. summa:= 0; x:= u; while x<> nil do begin summa:= summa+ x^.inf; x:= x^.next; end;
|