![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
AlonZo |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Имеется двухсвязный список. Требуется удалить по ключу определенный элемент списка. Как удалять с середины списка у меня работает, а вот как удалить голову или хвост списка я не знаю. Вот, что делал(приведу часть программы):
Код class List { struct Element { int data; Element *next; Element *pred; }; Element *head; public: List() {head=NULL;} ~List(); void AddToList(int data); void PrintList(); void SortList(); void DelElement(int key); }; void List::DelElement(int key) { Element *temp1,*temp2=head; while(temp2->next!=NULL) { if(temp2->data==key) { temp1=temp2->pred; temp1->next=temp2->next; temp2->next->pred=temp1; delete temp2; temp2=temp1; } temp2=temp2->next; } } И заодно вопрос по деструктору, правильно ли сделал(вроде работает): Код List::~List() { while(head!=NULL) { Element *temp=head; head=head->next; delete temp; } } Сообщение отредактировано: AlonZo - 9.04.2008 20:37 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Вот это попробуй погонять, вроде бы ничего не упустил:
void List::DelElement(int key) Сообщение отредактировано: volvo - 9.04.2008 21:31 |
AlonZo |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо, то, что надо.
|
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 18:12 |