IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Удаление элементов списка, C++
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Имеется двухсвязный список. Требуется удалить по ключу определенный элемент списка. Как удалять с середины списка у меня работает, а вот как удалить голову или хвост списка я не знаю. Вот, что делал(приведу часть программы):
Код

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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.12.2021 5:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name