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

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

Войти
Регистрация
Восстановить пароль
 
Pein95
3 / 3 / 0
Регистрация: 02.01.2013
Сообщений: 116
#1

Dfs Binary Tree, поиск элемента - C++

12.06.2014, 16:01. Просмотров 286. Ответов 5
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Employee* depthFirstSearch(string firstName, Employee* root)
{
 
  if (root) {
    if (root->getFirstName() == firstName) {
      return root;
    }
 
    if (root->left) {
      depthFirstSearch(firstName, root->left);
    } else if (root->right) {
      depthFirstSearch(firstName, root->right);
    }
    
  }
  return NULL;
  
}
почему то иногда функция возвращает NULL, хотя елемент там точно есть.
Помогите исправить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2014, 16:01     Dfs Binary Tree, поиск элемента
Посмотрите здесь:

Не работает поиск в глубину (DFS) - C++
Вот код (заполнен для ориентированного графа 0 2 | + +/ 1--+3--+4 | + 5--+6 |

Бинарный поиск, ошибка: "Invalid operands to binary expression" - C++
При компиляции программы XCode ругается на: algorithm:677:97: Invalid operands to binary expression ('const Luggage' and 'int') Сломал...

Поиск элемента - C++
Программа считает сколько минимально раз подряд встречается элемент х в массиве #include <iostream> using namespace std; int...

Поиск элемента в списке. - C++
Есть список, который содержит объекты класа type. Мне нужно найти в этом списке объект, который будет отвечать некоторым условиям. Пробую...

Поиск минимального элемента - C++
Доброго времени суток. Помогите пожалуйста с программой, вот задание: В одномерном массиве, состоящим из n вещественных элементов,...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Renji
1876 / 1274 / 290
Регистрация: 05.06.2014
Сообщений: 3,633
12.06.2014, 16:10     Dfs Binary Tree, поиск элемента #2
почему то иногда функция возвращает NULL, хотя елемент там точно есть.
Потому что результат depthFirstSearch никуда не сохраняется. Потому что если root->left, то root->right игнорируется.
Pein95
3 / 3 / 0
Регистрация: 02.01.2013
Сообщений: 116
12.06.2014, 16:22  [ТС]     Dfs Binary Tree, поиск элемента #3
а как тогда можно реализировать посик?
Renji
1876 / 1274 / 290
Регистрация: 05.06.2014
Сообщений: 3,633
12.06.2014, 16:33     Dfs Binary Tree, поиск элемента #4
а как тогда можно реализировать посик?
Сохраняя результаты вызова depthFirstSearch для левой и правой ветвей, и возвращая тот результат, который не ноль.
Pein95
3 / 3 / 0
Регистрация: 02.01.2013
Сообщений: 116
12.06.2014, 16:38  [ТС]     Dfs Binary Tree, поиск элемента #5
можно поподробней?
просто мне нужно вернуть указатель на тот узел дерева, в котором есть нужная информация.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2014, 16:49     Dfs Binary Tree, поиск элемента
Еще ссылки по теме:

Поиск элемента в массиве - C++
Как написать рекурсивную функцию для поиска элемента в массиве?

Поиск элемента в массиве - C++
Почему не выводится цифра 6? #include <stdio.h> #include <string.h> int main () { char szInput = "1234567890"; int k, n...

Поиск элемента по set - C++
Помогите с поиском элемента в наследуемом set. template<typename _T>class ThreadedSet { public: void unreg(const _T&...

Поиск элемента в списке - C++
Добавьте в класс списков метод int Search(T x) для поиска зна- чения x в списке. Метод должен возвращать номер узла со значением x или...

Поиск элемента в queue - C++
Доброе утро! Такой вопрос, можно ли как то осуществлять поиск элемента в очереди? В алгоритмах нашел функцию поиска find, но у queue нет...

Поиск элемента в list - C++
Написать программу учета заявок на обмен квартир и поиска вариантов обмена. Каждая заявка содержит сведения о двух квартирах: требуемой...


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

Или воспользуйтесь поиском по форуму:
Renji
1876 / 1274 / 290
Регистрация: 05.06.2014
Сообщений: 3,633
12.06.2014, 16:49     Dfs Binary Tree, поиск элемента #6
Сохраняя результаты depthFirstSearch(firstName, root->left); и depthFirstSearch(firstName, root->right); в две локальные переменные и возвращая ту локальную переменную, которая не равна 0. Переменные предварительно инициализировать нулями (да, прямо так и писать =0; ).

Но судя по вашему вопросу - ознакомиться с дисциплинами "использование функции в правой части выражения", "нулевой указатель. Что это такое?" и "мания копирования кода из Гугла. Как с ней бороться?". Потому как у меня есть большие сомнения что код в стартовом посте писали именно вы (если вы сами писали функцию, вопроса "как сохранить результаты depthFirstSearch" возникать не должно).
Yandex
Объявления
12.06.2014, 16:49     Dfs Binary Tree, поиск элемента
Ответ Создать тему
Опции темы

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