Форум «Всё о Паскале» _ Ада и другие языки _ Удаление элементов списка
Автор: AlonZo 10.04.2008 0:07
Имеется двухсвязный список. Требуется удалить по ключу определенный элемент списка. Как удалять с середины списка у меня работает, а вот как удалить голову или хвост списка я не знаю. Вот, что делал(приведу часть программы):
Код
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; } }
И заодно вопрос по деструктору, правильно ли сделал(вроде работает):