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

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

Войти
Регистрация
Восстановить пароль
 
Evgeny Iva.
Сообщений: n/a
#1

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

16.04.2012, 23:32. Просмотров 753. Ответов 1
Метки нет (Все метки)

Вершина бинарного дерева содержит ключ, строку и два указателя на потомков. Написать функцию, которая подсчитывает число ветвей от корня до ближайшей вершины с заданным ключом и выводить часть дерева от вершины до данного элемента на экран.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 23:32     Помогите кто может заделать задачку с бинарным деревом...
Посмотрите здесь:

C++ Помогите с бинарным файлом
C++ Разработать программу работы с бинарным деревом
C++ Разработать программу работы с бинарным деревом
C++ Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева"
C++ ПОМОГИТЕ отредактировать задачку!
C++ Кто может помогите. Дан файл, содержащий целые числа. Надо вычислить сумму всех чисел, расположеных до минимального значения в файле.
C++ Помогите решать задачку в C++
C++ Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:)
винни пух и пятачок ! кто решал такую задачку? C++
Бесконечный цикл при работе с бинарным деревом C++
Отобразить бинарным деревом предложение C++
Сортировка бинарным деревом C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
16.04.2012, 23:47     Помогите кто может заделать задачку с бинарным деревом... #2
рекурсивный поиск, чо
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int process_tree(node* branch, int target){
  if (branch->key==target) {
    print_node(branch);
    return 1;
  }
  if (process_tree(branch->left, target)==1){
    print_node(branch);
    return 1;
  }
  if (process_tree(branch->right, target)==1){
    print_node(branch);
    return 1;
  }
  return 0;
}
Добавлено через 11 минут
Правильнее так



C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int process_tree(node* branch, int target){
  int result;
  if (branch==NULL) return 0;
  if (branch->key==target) {
    print_node(branch);
    return 1;
  }
  result=process_tree(branch->left, target);
  if (result!=0){
    print_node(branch);
    return 1+result;
  }  
  result=process_tree(branch->right, target);
  if (result!=0){
    print_node(branch);
    return 1+result;
  }
  return 0;
}
Yandex
Объявления
16.04.2012, 23:47     Помогите кто может заделать задачку с бинарным деревом...
Ответ Создать тему
Опции темы

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