Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по C/C++

  Все выпуски  

Уроки по C/C++


Информационный Канал Subscribe.Ru

Уроки по C/C++. Рассылки сайта progs.biz  
Начало > C++ > Основы C++ > Урок 32

Боресков А. В. Графика трехмерной компьютерной игры на основе OpenGL.
Боресков А. В. Графика трехмерной компьютерной игры на основе OpenGL
Заказать на Озоне


Полные версии уроков (с картинками): урок 32.

C/C++
Урок 32. Удаление элемента из списка

Рассмотрим стандартную задачу - удаление элемента из списка.

Алгоритмически мы должны рассмотреть два случая - когда удаляем самы первый элемент из списка и когда удаляем элемент из середины или конца списка.

Вот код для нашего метода (не забудьте внести объявление этого метода в сам класс):

bool CList::RemoveData(int a, int b)
{
    // Если список пуст
    if(IsEmpty())
        // то выходим.
        return false;
    // Получаем элемент для удаления.
    CData * pData = FindData(a, b);
    // Если такого элемента в списке нет
    if(pData == NULL)
        // то выходим.
        return false;
    // Если удаляемый элемент - первый в списке.
    if(pData == m_pFirst){
        // Делаем первым следующий за ним элемент списка.
        m_pFirst = pData->m_pNext;
        // Освобождаем память, которую занимал удаляемый элемент.
        delete pData;
        // И выходим.
        return true;
    }
    // Если удаляемый элемент - не первый в списке.
    // То делаем так, чтобы элемент, находящийся в списке
    // перед удаляемым, показывал на следующий за удаляемым элемент.
    GetPrev(pData)->m_pNext = pData->m_pNext;
    // Освобождаем память, которую занимал удалаемый элемент.
    delete pData;
    // И выходим.
    return true;
}

Код должен быть ясен из комментария. Если удаление произошло, то возвращяем true, если нет, то false. В этом методе мы использовали другие методы (GetPrev, FindData), написанные на прошлых уроках.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
2002-2004 сайт progs.biz
2002-2004 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное