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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Wolkodav
 Аватар для Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
#1

Сбалансированное дерево - C++

16.11.2012, 23:33. Просмотров 454. Ответов 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
32
33
34
Tree* BildTree(Tree* First,int n,ifstream* f)
{
    cout<<n<<endl;
    int left;
    int right;
    Tree* BranchAdd=First;
    int key;
    if (n==0)
    {
        return BranchAdd;
    }
    else
        if (n==1)
        {
            return First;
        }
        else
        {
            left=n/2;
            right=n-1-n/2;
            (*f)>>key;
            Add(BranchAdd,key,0);
            BildTree(BranchAdd->left,left,f);
            if (right>0)
            {
                (*f)>>key;
                Add(BranchAdd,key,1);
                BildTree(BranchAdd->right,right,f);
                First=BranchAdd;
                return First;
            }
        }
    return First;
}
Вот структура:
C++
1
2
3
4
5
6
struct Tree
{
    int key;
    Tree* left;
    Tree* right;
};
И Добовление узла
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Add(Tree* branch,int key,bool flag)
{
    Tree* BrAdd=new Tree();
    BrAdd->key=key;
    if (flag)
    {
        cout<<"Right"<<key<<endl;
        branch->right=BrAdd;
    }
    else
    {
        cout<<"Left"<<key<<endl;
        branch->left=BrAdd;
    }
}
cout для дебага вставлял.
Помогите пожалуйста, укажите ошибку(

Добавлено через 25 минут
Народ, ау помогите плиз(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 23:33     Сбалансированное дерево
Посмотрите здесь:

C++ Сбалансированное дерево (бинарное)
C++ Алгебру в дерево
C++ Получи дерево
C++ Сбалансированное дерево
C++ Сформировать идеально сбалансированное бинарное дерево
Идеально сбалансированное дерево C++
C++ Сбалансированное дерево
Идеально сбалансированное дерево C++
C++ Реализовать структуру данных «сбалансированное дерево поиска»
Сбалансированное бинарное дерево. Структуры даннных C++
Идеально сбалансированное дерево C++
Написать функцию, которая вводит с клавиатуры сбалансированное дерево C++

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

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

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