Удаление элемента из однонаправленного списка

Из динамических структур можно удалять элементы, так как для этого достаточно изменить значения адресных полей. Операция удаления элемента однонаправленного списка осуществляет удаление элемента, на который установлен указатель текущего элемента. После удаления указатель текущего элемента устанавливается на предшествующий элемент списка или на новое начало списка, если удаляется первый.

Алгоритмы удаления первого и последующих элементов списка отличаются друг от друга. Поэтому в функции, реализующей данную операцию, осуществляется проверка, какой элемент удаляется. Далее реализуется соответствующий алгоритм удаления (рис. 29.3).


Рис. 29.3. Удаление элемента из однонаправленного списка

/*удаление элемента с заданным номером из однонаправленного списка*/Single_List* Delete_Item_Single_List(Single_List* Head, int Number){ Single_List *ptr;//вспомогательный указатель Single_List *Current = Head; for (int i = 1; i < Number && Current != NULL; i++) Current = Current->Next; if (Current != NULL){//проверка на корректность if (Current == Head){//удаляем первый элемент Head = Head->Next; delete(Current); Current = Head; } else {//удаляем непервый элемент ptr = Head; while (ptr->Next != Current) ptr = ptr->Next; ptr->Next = Current->Next; delete(Current); Current=ptr; } } return Head;}







Дата добавления: 2015-08-14; просмотров: 663;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.