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

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

Восстановить пароль Регистрация
 
scofielcl
4 / 4 / 0
Регистрация: 11.09.2011
Сообщений: 143
16.01.2013, 19:00     Бин. дер. поиска , рекурсия #1
Доброе утро.
Решаю следующую задачу : определить является ли дерево симметричным относительно корня.

Имею следующий код :
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 строке , но как её заменить . ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 19:00     Бин. дер. поиска , рекурсия
Посмотрите здесь:

Постройка бин. дерева C++
C++ Сохранение и чтение бин. дерева
C++ Рекурсив. обход бин. дерева поиска
C++ Рекурсия. Написать программу поиска минимального пути для произвольной пары городов
Нужно отредактировать код поиска в некоторых папках. Добавить функцию поиска в архивах C++
C++ Рекурсия (не могу из нее выйти) поиска пути в лабиринте
Организация поиска в списке. Исправить ошибку в методе поиска C++
Рекурсия для поиска вещественного корня функции f(x) на отрезке [a, b] C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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