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

Признак наличия потомков в бинароном древе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление букв из слова http://www.cyberforum.ru/cpp-beginners/thread869194.html
Дано длинное слово (более 10 символов). Если в нем четное число элементов, удалить две средние буквы. Иначе удалить одну среднюю букву. Исп. класс string!
C++ Изменение исходного слова В переменной str хранится строка "intern". Напишите программу, которая изменяет исходное слово на "internet". Выведите переменную str на экран. Исп. класс string! http://www.cyberforum.ru/cpp-beginners/thread869192.html
C++ Какое из двух названий длиннее
Даны названия двух футбольных клубов. Определить, какое из названий длиннее. Исп. класс string!
Запись переменных в name и surname C++
Написать программу, которая запрашивает ваше имя и фамилию, и записывает их в переменные name и surname. Затем объединяет их в переменную fullname и выводит на экран. Использовать класс string!
C++ Заполнить массив A следующим образом: http://www.cyberforum.ru/cpp-beginners/thread869187.html
Заполнитьмассив A следующим образом:
C++ через указатели Имеются десять гирь весом a1, a2, ..., a10. Обозначим через ck– число способов, которыми можно составить вес k, то есть ck – это число решенийуравнения a1x1 + a2x2 +...+ a10x10 = k, где xiможет... подробнее

Показать сообщение отдельно
ma99mel
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 10

Признак наличия потомков в бинароном древе - C++

18.05.2013, 14:16. Просмотров 202. Ответов 0
Метки (Все метки)

Здравствуйте! Нужно реализовать удаление вершины в бинарном древе поиска. В приведёном отрывке программы нужно удалить вершину x. Как известно, есть три случая, которые основываеются на наличие, либо отсутствие потомков. Как узнать есть ли потомки?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  int mid = 0, // переменная для хранения индекса среднего элемента древа
        l   = 0, // индекс первого элемента в древе
        r    = n - 1; // индекс последнего элемента в древе
 while (l < r)
        {
           mid = l + (r - l) / 2; // меняем индекс среднего значения
           if   (x <= a[mid])  r = mid;
           else l = mid + 1; // есть ли элемент в древе
 
           if(a[mid]==x)
           {
               mid = l + (r - l) / 2;   //где-то здесь, видимо, нужно искать признак
               if   (x <= a[mid])  r = mid;
               else l = mid + 1;
           }
 
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru