На этом шаге мы рассмотрим один из алгоритмов удаления звена.
На этом шаге мы рассмотрим алгоритм удаления звена, расположенного после звена, на которое указывает ссылка Res.
Воспользуемся схемами "до и после":
q = (*Res).sled;
Рис.1. Определение местоположения удаляемого звена.
if (q!=NULL) //Если звено, после которого нужно удалять, // не является последним, то... { (*Res).sled = (*(*Res).sled).sled;
Рис.2. Исключение удаляемого элемента из списка
delete q;
Рис.3. Возврат памяти в кучу
}
Приведем текст функции удаления:
void YDALE (node **Res) // Удаление звена, расположенного после // звена, на которое указывает ссылка *Res. { node *q; q = (**Res).sled; if (q!=NULL) // Если звено, после которого нужно удалять, // не является последним, то... { (**Res).sled = (*(**Res).sled).sled; delete q; } else cout<<"Звено с заданным элементом - последнее!\n"; }
На следующем шаге мы продолжим рассматривать алгоритмы удаления звена.