Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DJFile
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 31
#1

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

11.04.2011, 16:23. Просмотров 810. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2011, 16:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Бинарное дерево. Поиск. (C++):

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

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

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

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

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

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

1
DexMipt
13 / 13 / 1
Регистрация: 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 секунды
а можешь помочь при удаление узла дерева, тут http://www.cyberforum.ru/cpp-beginners/thread273988.html
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2011, 19:34
Привет! Вот еще темы с ответами:

Бинарное дерево - C++
Помогите исправить ошибку, компилятор ругается на 110 строку, не пойму почему( #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include...

Бинарное дерево - C++
Мой код: Patient.h // // Created by User on 26.04.2016. // #ifndef LABA_10_PATIENT_H #define LABA_10_PATIENT_H using...

бинарное дерево - C++
С помощю бинарного дерева нужна сделать программу,,любую (главное что на экран выводило)

Бинарное дерево - C++
Помогите пожалуйста реализовать удаление элементов бинарного дерево, добавление и вывод вроде сделал, а тут путаюсь Бинарное дерево...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.