Форум программистов, компьютерный форум CyberForum.ru

Бинарное дерево. Поиск. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выяснить, входит ли в последовательность S1 ,. . ., Sm буква Ю http://www.cyberforum.ru/cpp-beginners/thread274329.html
Даны натуральное число n, символы S1 ,..., Sn . Известно, что символ S1 отличен от символа * и что среди S2 , S3 ,. . ., Sn есть по крайней мере один символ *. Пусть S1 ,. . ., Sn - символы данной последовательности, предшествующие первому символу * ( m заранее неизвестно). Выяснить, входит ли в последовательность S1 ,. . ., Sm буква Ю
C++ Обработка строки Здравствуйте. У меня есть строка: нолщаувсдлч ощзхзждцвыбьчля start Как удалить все до слова start? http://www.cyberforum.ru/cpp-beginners/thread274318.html
Ввести сведения о результатах экзаменационной сессии группы C++
Ввести сведения о результатах экзаменационной сессии группы по следующей структур: ФИО, предмет(три предмета), оценка. Вывести: а) всех кто получил двойки; б) все сведения для указанной фамилии. Примечание: *использовать меню; *данные вывести в виде таблицы.
C++ Дан одномерный массив A(20). Первую половину перенести в конец
Дан одномерный массив A(20). Первую половину перенести в конец. Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержимое.
C++ Простая программа про кирпич и отверстие http://www.cyberforum.ru/cpp-beginners/thread274266.html
"Прямоугольный формы кирпич имеет стороны A,B,C. Определить, пройдет ли кирпич в прямоугольное отверстие размером 5*8. Значения вводить в диалоге, иметь возможность повторного обращения." Необходимо решить задачу на С++.
C++ Определить количество слов, заканчивающихся буквой "а" Дан набор слов, разделённых точкой с запятой. Набор заканчивается двоеточием. Определить, сколько в нём слов, заканчивающихся буквой "а". подробнее

Показать сообщение отдельно
DJFile
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 31
11.04.2011, 16:23     Бинарное дерево. Поиск.
Здравствуйте. Дано задание, создать бинарное дерево с возможностью добавления, удаления элементов и поиск. Знаю, что тут ничего сложного и в принципе всё сделал. По ходу изучения понял что чтобы красиво выводить дерево мне нужны итераторы, с этим тоже более менее разобрался. Но есть одна загвоздка с поиском. Не знаю как обработать случай, когда искомый элемент не найден.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
template<typename T>
T BinTree<T>::Find(const T& value) const
{
    return *FindHelper(pRoot, value);
}
 
template<typename T>
T* BinTree<T>::FindHelper(Node<T>* pNode, const T& value) const
{
    if (pNode == NULL)  // Пока как бы так
        return NULL;
    if (value == pNode->data)
    {
        return &pNode->data;
    }
 
    if (value < pNode->data)
    {
        return FindHelper(pNode->pLeft, value);
    } 
    else
    {
        return FindHelper(pNode->pRight, value);
    }
}
В голове пока что только один вариант, это делать поиск с помощью итераторов и там уже обрабатывать. Как это делается правильно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru