0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 31
1

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

11.04.2011, 16:23. Показов 1160. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Дано задание, создать бинарное дерево с возможностью добавления, удаления элементов и поиск. Знаю, что тут ничего сложного и в принципе всё сделал. По ходу изучения понял что чтобы красиво выводить дерево мне нужны итераторы, с этим тоже более менее разобрался. Но есть одна загвоздка с поиском. Не знаю как обработать случай, когда искомый элемент не найден.

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);
    }
}
В голове пока что только один вариант, это делать поиск с помощью итераторов и там уже обрабатывать. Как это делается правильно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2011, 16:23
Ответы с готовыми решениями:

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при...

Бинарное дерево, поиск пирамиды
Помогите написать программу: Дано бинарное дерево. Определить какие поддеревья являются...

Бинарное дерево. Поиск числа ветвей по значению
Задание: Написать программу, к-я находит длину пути (число ветвей) от корня до ближайшего значения...

Бинарное дерево: поиск суммы всех элементов
Возникла проблема в коде ,не могу разобраться #include &quot;stdafx.h&quot; #include&lt;iostream&gt;...

1
13 / 13 / 2
Регистрация: 13.03.2011
Сообщений: 98
11.04.2011, 19:34 2
а тебе не хватает в конце условия вылета
C
1
else return NULL;
как то так

вот мои поиск в дереве, рекурсивный )только на си
C
1
2
3
4
5
6
7
8
struct treeNode* TreeSearch (struct treeNode **treePtr , unsigned long long int value)
{
    if      ((*treePtr)->data == value)                                         return &treePtr;
    else if ((*treePtr)->data > value && (*treePtr)->leftPtr  != NULL) TreeSearch(&(*treePtr)->leftPtr , value);
    else if ((*treePtr)->data < value && (*treePtr)->rightPtr != NULL) TreeSearch(&(*treePtr)->rightPtr, value);
 
    else return NULL;
}
Добавлено через 42 секунды
а можешь помочь при удаление узла дерева, тут https://www.cyberforum.ru/cpp-... 73988.html
0
11.04.2011, 19:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2011, 19:34
Помогаю со студенческими работами здесь

Бинарное дерево. Поиск, вывод и удаление элементов из дерева
Задача следующая: Разработать программу, которая содержит информацию о реестре жилых помещений...

Бинарное дерево поиска: "Библиотека", поиск по автору книги
Есть бинарное дерево поиска.Дерево представляет собой подобие библиотеки.Нужно осуществить поиск по...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Бинарное дерево
Необходимо построить бинарное дерево с методами inorder_tree_walk, tree_search, tree_minimum,...

Бинарное дерево
Реализовать базу данных ГАИ по штрафным квитанциям с помощью бинарного дерева. Ключом будет...

Бинарное дерево
Подскажите алгоритм распечатки дерева на экран горизонтально, не вертикально, как обычно это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru