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

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

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

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

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
11.04.2011, 16:23
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2011, 16:23
Ответы с готовыми решениями:

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

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

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

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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.04.2011, 19:34
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Ключевые слова Python
hw_wired 15.02.2025
Ключевые слова в Python - это специальные зарезервированные слова, которые имеют особое значение и функции в языке. В настоящее время Python включает 35 ключевых слов и 4 мягких ключевых слова. Эти. . .
Отличия изменяемых и неизменяемых типов в Python
hw_wired 15.02.2025
В Python существует принципиальное различие между изменяемыми (mutable) и неизменяемыми (immutable) типами данных, которое оказывает существенное влияние на работу программ. Это различие часто. . .
Python: сравнение списков и кортежей
hw_wired 15.02.2025
В Python последовательности являются одними из самых важных и часто используемых типов данных. Они позволяют хранить упорядоченные наборы элементов, к которым можно обращаться по индексу. Среди всех. . .
Как скачивать файлы с URL с помощью Python
hw_wired 15.02.2025
Для скачивания файлов Python предлагает как встроенные средства, так и сторонние библиотеки. Встроенный модуль urllib из стандартной библиотеки обеспечивает базовую функциональность для работы с URL. . .
Использование SQLAlchemy в Python
hw_wired 15.02.2025
SQLAlchemy - мощная библиотека для работы с базами данных в Python, которая предоставляет полноценный набор средств для объектно-реляционного отображения (ORM) и обширные возможности для работы с. . .
Взаимодействие с REST API в Python
hw_wired 15.02.2025
В современном мире разработки программного обеспечения REST API стал неотъемлемой частью архитектуры веб-приложений. API (Application Programming Interface) - это набор правил и протоколов,. . .
Разделение строк в Python
hw_wired 15.02.2025
Python предлагает богатый набор возможностей для работы со строками, и среди них разделение строк занимает особое место. Этот процесс позволяет разбивать текст на отдельные компоненты, что критично. . .
Объединение строк в Python
hw_wired 15.02.2025
При работе с текстовыми данными в Python нередко возникает необходимость объединять несколько строк в одну. Это может потребоваться при форматировании вывода, обработке текстовых файлов или создании. . .
Лучшие игровые движки на Python
hw_wired 15.02.2025
В последнее время разработка игр стала одним из самых популярных направлений программирования, и Python не остался в стороне от этого тренда. Несмотря на то, что Python обычно не ассоциируется с. . .
Декоратор jit в Python
hw_wired 15.02.2025
Если вы достаточно долго изучаете программы и пакеты на Python для машинного обучения, то наверняка замечали, что паттерн "JIT-декоратор" довольно популярен. Этот подход позволяет превратить обычные. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru