Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alexen
5 / 5 / 0
Регистрация: 14.11.2008
Сообщений: 77
#1

Связаные списки - C++

10.06.2009, 12:03. Просмотров 511. Ответов 1
Метки нет (Все метки)

Ребят подскажите как можно удалить из двухсвязного списка последние крайние узлы
при удалении по нахождению реквизита узла.

void del(List *list)
{
cout << "Введите фамилию для удаления записи." << endl
<<"?: ";
char mas[15];
cin >> mas;
Date *temp = list->Head, *delete_c;
if (list->Head == NULL)
{cout << "Список пуст."; return;}

if(list->Head == list->Tail)
{
if(!strcmp(temp->name, mas))
{list->Head = list->Tail = 0; delete temp; return;}
}

while(temp)
{
delete_c = temp;
if(!strcmp(temp->name, mas))
{ delete_c->last->next = temp->next;
delete_c->next->last = temp->last;delete temp; return;
}

temp = temp->next;
}

}
что имею. Или необходимо добвлять условия для крайних дополнительно??
Зарание спс. Учу списки застрял на этом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2009, 12:03     Связаные списки
Посмотрите здесь:

C++ Списки в С++
C++ списки С++
C++ Списки
списки C++
C++ Списки с С++
C++ Списки
Списки в C++ C++
C++ списки
C++ Литература о Связаные списках
Списки С++ C++
Списки в c++ C++
Списки, как склеить списки между собой? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deiron
25 / 25 / 1
Регистрация: 25.05.2009
Сообщений: 98
10.06.2009, 15:31     Связаные списки #2
хмм. Лучше перестраховаться. При условии, что у первого элемента списка last==NULL а у последнего next==NULL, то лучше сделайте так
C++
1
2
3
4
5
if(!strcmp(temp->name, mas)){ 
    if (delete_c->last) delete_c->last->next = temp->next;
    if (delete_c->next) delete_c->next->last = temp->last;  
    delete temp; return;
}
Yandex
Объявления
10.06.2009, 15:31     Связаные списки
Ответ Создать тему
Опции темы

Текущее время: 09:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru