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

проверка на сбалансированность - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ задача к курсовой (Багаж пассажира) http://www.cyberforum.ru/cpp-beginners/thread859335.html
1. Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл , содержащий информацию о багаже нескольких пассажиров, информация о багаже каждого отдельного пассажира...
C++ Аналог system("cls"); Есть ли что то побыстрей? Нужно стирать содержимое с окна и выводить новое. Функция cls как то заторможено это делает. Нужно что бы он быстрей обновлялся. http://www.cyberforum.ru/cpp-beginners/thread859334.html
Работа с текстовые файлы, вычисления с матрицами C++
Добрый день. Не могу в такие задания. Буду благодарен за помощь. Задание: В текстовом файле записаны матрицы A(4x4), B(3x3), C(5x5). Прибавить элементы к диагональным элементам каждой из значений...
C++ Можно ли переделать метод ?
есть метод:Из многочисленных подходов к решению этой подзадачи наш выбор остановился на алгоритме, в основе которого лежит определение относительного положения точки и вектора на плоскости. Вектор —...
C++ Работа с массивами C++ http://www.cyberforum.ru/cpp-beginners/thread859302.html
Имеем код, здесь у меня есть массив в нем задан алфавит, затем мы заменяем к примеру пять первых символов этого алфавита, как сделать проверку , чтобы символы которые мы вбили первые пять, уже не...
C++ Работа с файлами Беда. Пишу программу для генерации онлайн тестов из обычного текстового файла. И столкнулся с такой проблемой. Файл будущего теста имеет вид: 1. Vopros (1) Otvet 11 (0) Otvet 12 (1) Otvet 13... подробнее

Показать сообщение отдельно
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
10.05.2013, 12:50
Что-то типа этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cmath>
 
int check( node *h )
{
    if ( h == 0 ) return 1;
 
    int l = check( h->left );
    int r = check( h->right );
 
    if ( l == 0 || r == 0 ) return 0;
    if ( std::abs( l - r ) > 1 ) return 0;
    return ( l + r + 1 ) / 2 + 1;
}
Проверяет сбалансированность как в АВЛ-дереве, где высота поддеревьев может отличаться на 1.
Если функция вернет 0, то дерево не сбалансировано.
Корректность работы функции не проверял
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru