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

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

12.06.2014, 16:01. Показов 617. Ответов 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, хотя елемент там точно есть.
Помогите исправить.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2014, 16:01
Ответы с готовыми решениями:

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

Вставка элемента в заданную позицию, удаление элемента по заданной позиции, поиск заданного элемента
Добавить в класс "Односвязный список" следующие функции: вставка элемента в заданную позицию,...

Бинарный поиск, ошибка: "Invalid operands to binary expression"
При компиляции программы XCode ругается на: algorithm:677:97: Invalid operands to binary...

Binary Tree C#
Задали реализовать класс binary tree на шарпах в ООП стиле. Указатели использовать нельзя. Ну...

5
2756 / 1910 / 569
Регистрация: 05.06.2014
Сообщений: 5,560
12.06.2014, 16:10 2
почему то иногда функция возвращает NULL, хотя елемент там точно есть.
Потому что результат depthFirstSearch никуда не сохраняется. Потому что если root->left, то root->right игнорируется.
0
3 / 3 / 0
Регистрация: 02.01.2013
Сообщений: 116
12.06.2014, 16:22  [ТС] 3
а как тогда можно реализировать посик?
0
2756 / 1910 / 569
Регистрация: 05.06.2014
Сообщений: 5,560
12.06.2014, 16:33 4
а как тогда можно реализировать посик?
Сохраняя результаты вызова depthFirstSearch для левой и правой ветвей, и возвращая тот результат, который не ноль.
0
3 / 3 / 0
Регистрация: 02.01.2013
Сообщений: 116
12.06.2014, 16:38  [ТС] 5
можно поподробней?
просто мне нужно вернуть указатель на тот узел дерева, в котором есть нужная информация.
0
2756 / 1910 / 569
Регистрация: 05.06.2014
Сообщений: 5,560
12.06.2014, 16:49 6
Сохраняя результаты depthFirstSearch(firstName, root->left); и depthFirstSearch(firstName, root->right); в две локальные переменные и возвращая ту локальную переменную, которая не равна 0. Переменные предварительно инициализировать нулями (да, прямо так и писать =0; ).

Но судя по вашему вопросу - ознакомиться с дисциплинами "использование функции в правой части выражения", "нулевой указатель. Что это такое?" и "мания копирования кода из Гугла. Как с ней бороться?". Потому как у меня есть большие сомнения что код в стартовом посте писали именно вы (если вы сами писали функцию, вопроса "как сохранить результаты depthFirstSearch" возникать не должно).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2014, 16:49
Помогаю со студенческими работами здесь

Binary Tree (Generics)
Как данную структуру бинарного дерева реализовать с помощью обобщенной реализации(чтобы можно было...

Глубина binary tree
Как находить глубину бинарного дерева может кто обьеснить ?? =(((( а то нехера не дагоняю

Binary Search Tree
Никак не могу понять как работает Binary Search Tree в 1-Dimensional Range Searching (например,...

Класс для построения Binary Tree
Вот озадачили нас написанием класса построения бинарного дерева. Задание я вроде выполнил. Но...


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

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

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