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

Бин. дер. поиска , рекурсия - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с лентами (Подсчитать количество слов оканчивающихся на букву о) http://www.cyberforum.ru/cpp-beginners/thread763225.html
Строка содержит английский текст. Подсчитать количество слов оканчивающихся на букву о.
C++ Описать функцию F(a,n,p), определяющую, чередуются ли положительные и отрицательные элементы в массиве Программа. Описать функцию F(a,n,p), определяющую, чередуются ли положительные и отрицательные элементы в целочисленом массиве a из n элементов и вычисляющую целочисленное значение p. Если элементы... http://www.cyberforum.ru/cpp-beginners/thread763143.html
Найти три минимальных элемента в дереве и массиве (Доработать код) C++
Ребята кто нибудь мог бы помочь с кодом на с++. Я написал прогу которая ищет 3 минимальных элемента в дереве и массиве. Если я в массиве задаю все отрицательные числа то прога вылетает. А вот...
[C] ReadFile/WriteFile C++
Всем доброго времени суток! Есть вроблема с програмкой ,а именно: Unhandled exception at 0x010b1493 in lab3.exe: 0xC0000005: Access violation reading location 0x00000000. Исходник: #include...
C++ Подсчитать кол-во одинаковых элементов каждого значения http://www.cyberforum.ru/cpp-beginners/thread763118.html
Дан массив целых чисел, причём каждое из них принадлежит диапазону . Упорядочить элементы массива (отсортировать) по возрастанию. Для этого использовать дополнительный массив. Подсчитать количество...
C++ Вывести фигуру звездочками Ребята, задали задачу не могу докумекать Нужно составить програмку, которая выдает на экран такую фигуру Нули не нужны, только звездочки. 000 * 00*000* * 000000*... подробнее

Показать сообщение отдельно
scofielcl
4 / 4 / 0
Регистрация: 11.09.2011
Сообщений: 145

Бин. дер. поиска , рекурсия - C++

16.01.2013, 19:00. Просмотров 270. Ответов 0
Метки (Все метки)

Доброе утро.
Решаю следующую задачу : определить является ли дерево симметричным относительно корня.

Имею следующий код :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
            case 13 : {
                bool a;
                a = sim(root);
                if(a == true)cout<<"da\n";
                else cout<<"net\n";
                break;
            }
 
bool alpha(bintree *l,bintree *r){
 
  //  bool a;
       if( l && r ){ 
 
        if(!l->right && r->left){cout<<"a\n";return false;}
        if(l->right && !r->left){cout<<"b\n";return false;}   
        if(!l->left && r->right){cout<<"c\n";return false;}
        if(l->left && !r->right){cout<<"d\n";return false;}
       alpha(l->left,r->right);
       alpha(l->right,r->left);
    }
    return true;
 
}
 
bool sim(bintree *root){
    bintree *l = root; // левое поддерево
    bintree *r = root;//правое поддерево
 
    return alpha(l->left,r->right);
 
}
Работа кода некорректна , но при этом при выполнении функции alpha ,он определяет несимметричность(т.к. выводит одно из слагаемых : a .c .b .d ,но все же возвращает true , как исправить ситуацию ?)

Добавлено через 7 часов 11 минут
Полагаю дело в 22 строке , но как её заменить . ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru