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

Как найти в двоичном дереве поиска минимальный элемент, превышающий некоторое заданное значение? - C++

Восстановить пароль Регистрация
 
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
30.06.2013, 02:24     Как найти в двоичном дереве поиска минимальный элемент, превышающий некоторое заданное значение? #1
Вот примерная рекурсивная функция, но я не знаю, как выйти из нее в нужный момент.
C++
1
2
3
4
5
6
7
8
9
10
11
void range(Node *root, int r)
{
    if (root==NULL) return;
    range(root->left, r);
    if(root->key > r) 
       {
          printf("%d\n", root->key); 
          return; //значение найдено, надо здесь выйти из функции, но она рекурсивная, полностью выйти не получается
       }
    range(root->right, r);
}
root - корень дерева
r - заданное значение

Если Вам не нравится моя идея, предложите свою.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2013, 02:24     Как найти в двоичном дереве поиска минимальный элемент, превышающий некоторое заданное значение?
Посмотрите здесь:

Представление выражения в двоичном дереве C++
Вывести К-тый отрицательный элемент в упорядоченном дереве поиска с просмотром TLR C++
C++ в матрице К(7,7) найти минимальный элемент и заменить его на значение среднего
C++ Подсчет уровней в двоичном дереве поиска
C++ Как найти в двоичном дереве поиска минимальный элемент, превышающий некоторое заданное значение?
В массиве вещественных чисел найти элемент, превышающий его среднее арифметическое C++
C++ Реализация словаря в двоичном дереве поиска
Реализация словаря в двоичном дереве поиска C++
Как поменять местами максимальный и минимальный элементы в дереве? C++
Найти первый элемент заданного массива, превышающий значение, введённое с клавиатуры C++
C++ Поиск в двоичном дереве
C++ Найти сумму листьев в бинарном дереве поиска

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mogost
 Аватар для Mogost
7 / 7 / 1
Регистрация: 07.04.2012
Сообщений: 51
01.07.2013, 22:34     Как найти в двоичном дереве поиска минимальный элемент, превышающий некоторое заданное значение? #2
Необходимо переходить к левому сыну до тех пор пока сын больше определенного значения.
C++
1
2
3
4
5
6
7
8
9
Node* range(Node *root, int r)
{
    if (root==NULL) return;
    while(root->left->key>r)
    {
    root=root->left;
    }
    return Node;
}
Вот такая идея.
Yandex
Объявления
01.07.2013, 22:34     Как найти в двоичном дереве поиска минимальный элемент, превышающий некоторое заданное значение?
Ответ Создать тему
Опции темы

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