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

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

  Все выпуски  

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


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

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

А. Ламот. Программирование трехмерных игр для Window.
А. Ламот. Программирование трехмерных игр для Window
Заказать на Озоне


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

C/C++
Урок 30. Ищем элемент в списке

Продолжаем писать наш класс. В этом уроке мы с вами напишем метод FindData нашего класса, который находит некоторый элемент в нашем списке. Элемент будет задаваться параметрами - так как в каждом элементе списка два параметра (a и b), то и у метода FindData будет два параметра.

Вот тело метода:

CData * CList::FindData(int a, int b)
{
  // Указатель на очередные данные в списке.
    CData * pCurr = m_pFirst;
    // Если список пуст, то возвращаем NULL.
    if(pCurr == NULL)
    {
        return NULL;
    }
    // Обходим все элементы списка.
    do{
        // Если нашли искомый элемент, то его и возвращаем.
        if(pCurr->a == a && pCurr->b == b)
        {
            return pCurr;
        }
        // Переводим pCurr на следующий элемент в списке.
        // Если он равен NULL, то заканчиваем.
    }while((pCurr = pCurr->m_pNext)!=NULL);

    // Если ничего не нашли, то возвращаем NULL.
    return NULL;
}

Алгоритм метода ясен из комментариев. Если искомый элемент найден, то возвращается указатель на него, если нет, то возвращается нулевой указатель NULL.

Дополнить код в функции main для проверки можно, например, так:

void main(){
    ...
    // Есть ли в списке элемент с a = 22 ? b = 2?
    if(list.FindData(22, 2) == NULL)
    {
        cout<<"Nothing\n";
    }
    else
    {
        cout<<"Find\n";
    }
}

Если мы при запуске программы зададим элемемент нашего списка с a равным 22 и b равным 2, то программа выдаст на консоль "Find", в противном случае - "Nothing".

Рассылки сайта 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/
Адрес подписки
Отписаться

В избранное