Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
6 / 6 / 1
Регистрация: 14.11.2008
Сообщений: 82
1

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

10.06.2009, 12:03. Просмотров 1120. Ответов 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;
}

}
что имею. Или необходимо добвлять условия для крайних дополнительно??
Зарание спс. Учу списки застрял на этом.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2009, 12:03
Ответы с готовыми решениями:

Литература о Связаные списках
Здравствуйте, кто знает какую нить литературу по которой можно понять связаные списки. И зачем...

Списки, как склеить списки между собой?
Ребят, привет всем, есть код, в классе которого описаны несколько методов: добавление элемента в...

связаные списки
Доброго времени суток! Заранее извиняюсь если такая тема есть, я её найти не смог. Не могу решить...

Связаные списки и таблица
Не могу решить проблему со связаными списками и таблицей. Проблема в следующем. Есть...

1
26 / 26 / 9
Регистрация: 25.05.2009
Сообщений: 98
10.06.2009, 15:31 2
Лучший ответ Сообщение было отмечено Alexen как решение

Решение

хмм. Лучше перестраховаться. При условии, что у первого элемента списка 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;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2009, 15:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Связаные таблицы
Здравствуйте, Дано - БД Задача- связать между собой таблицы БД таким образом, чтоб при выборе...

Связаные таблицы...
Всем доброго времени суток. У меня вот такая проблема: есть две таблицы (BDE Paradox) , которые...

SQLite Связаные таблицы
Есть таблицы Магазин и товар - Магазин как ключевая. Одну таблицу создает сразу две не хочет. ...

Связаные таблицы и DataGridView
Здравствуйте, у меня имеется база с двумя связанными таблицами, в самом приложении на форму...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.