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

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

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

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

16.11.2012, 23:33. Просмотров 548. Ответов 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 минут
Народ, ау помогите плиз(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 23:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сбалансированное дерево (C++):

Сбалансированное дерево - C++
Всем привет!) Для учебной практики требуется решить задачу: Написать программу в С++, суть заключается в следующем, нужно на форме...

Сбалансированное дерево - C++
Ребят, может есть у кого код сбалансированного дерева с подробными комментариями, чтобы разобраться? выложите пож-та. спасайте..

Сбалансированное дерево (бинарное) - C++
кто сможет, пожалуйста напишите код с++, построения сбалансированного дерева,функцию добавления элемента в дерево и восстановелния...

Идеально сбалансированное дерево - C++
В файле input.txt хранится последовательность целых чисел.По входной последовательности построить идеально сбалансированное дерево и найти...

Сбалансированное не бинарное дерево - C++
Каково определение сбалансированного произвольного, не бинарного дерева ? Например, для бинарного говориться, что расхождение высот...

Идеально сбалансированное дерево - C++
Всем привет. Нужно построить идеально сбалансированное дерево из букв, упорядоченное я сделал, но не могу понять, как сделать идеально...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2012, 23:33
Привет! Вот еще темы с ответами:

Идеально сбалансированное дерево - C++
Интересует как работает этот кусок кода) по идеи Create(&amp;tmp-&gt;right, nr); сюда компилятор никогда не доберется? и еще как она выходит из...

Сбалансированное двоичное дерево поиска - C++
ЗДРАВСТВУЙТЕ! Есть код. При компилировании выдаёт ошибку. Помогите исправить пожалуйста. avl.h #include &lt;iostream&gt; #include...

Сформировать идеально сбалансированное бинарное дерево - C++
Дан текст программы. Проверти правильно или нет описание сделал? TNode* makePerfectBalancedTree(int n, TNode* p) // происходит...

Сбалансированное бинарное дерево. Структуры даннных - C++
Доброе время суток,уважаемые посетители форума! Задали на структурах данных создать сбалансированное бин. дерево,после чего построить из...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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