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

Восстановление баланса в AVL-дереве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ игра "жизнь" http://www.cyberforum.ru/cpp-beginners/thread307882.html
Помогите,пожалуйста,разобраться как работает программа, особенно в функции proverka. очень надо #include <iostream> #include <conio.h> using namespace std; void proverka( int a,int i,int j,int &n,int N) { n=0; if(a==1) n++; if(a==1)
C++ "Перепрыгивание" компилятора к части кода после выхода из функции Уважаемые форумчане! Решил обратиться к вам, благо уже не знаю, что делать. Накодил я тут QuickSort текста по алфавиту для лабы. Он работает исправно, вот только такая штука - доходя до конца функции к return true, он с return ВНЕЗАПНО перепрыгивает на часть кода, в которой рекурсивно вызывается эта же функция. Впрочем, сначала приведу код: bool Qsort(int L, int R) { int dp,fl,q,l=0;... http://www.cyberforum.ru/cpp-beginners/thread307863.html
C++ Небольшой вопрос по заполнению структуры
В первой строке ошибка, пропущена точка с запятой.. Поправте, как правильно заполнить Zapravki_AZS.AZS = {{ "Lukoil"; Zapravki_AZS.marka_benzina = 92; Zapravki_AZS.cena_benzina = 25.0}, { "Lukoil"; Zapravki_AZS.marka_benzina = 95; Zapravki_AZS.cena_benzina = 27.0}, ...
Релиз C++
Скачал FLTK, установил, все работает. Создал релиз. У меня все отлично запускается, а у брата экзешник не работает. Пологаю потому, что у него нет этих библиотек. Я подключил 7 библиотечных файлов в свой MVC2008, а куда ему их скопировать, чтобы тоже все работало не устанавливая MVC? #include <Fl.h> #include <Fl_Box.h> #include <Fl_Window.h> int main() { Fl_Window window(200, 200,...
C++ Шаблон списки http://www.cyberforum.ru/cpp-beginners/thread307848.html
Посмотрите что не так // Лабораторная работа 6.1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <string> using namespace std;
C++ Перегрузка операторов и конструктор копироваия Все здравствуйте. У меня такая проблема, перегрузил основные операции для работы с одномернымм массивом, если массив статический все работает, но если динамический прога, вылетает. Мне кажется дело в конструкторе копирования, но его я не могу сообразить, помогите пожалуйста кто может #include <iostream.h> #include<windows.h> #include<vector> using namespace std; char Rustext; ... подробнее

Показать сообщение отдельно
Khelleos
37 / 37 / 7
Регистрация: 13.05.2010
Сообщений: 283
Записей в блоге: 1
29.05.2011, 22:01     Восстановление баланса в AVL-дереве
При частом удаление элементов из АВЛ-дерева, программа выдает ошибку
---------------------------
Debugger Exception Notification
---------------------------
Project Game.exe raised exception class EAccessViolation with message 'Access violation at address 00408B66 in module 'Game.exe'. Read of address 00000028'.
---------------------------
Break Continue Help
---------------------------

вот код восстановления баланса
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
35
36
37
38
39
40
void TMain::AVL_Tree::bal_right(AVLT **Parent)
{
    AVLT *Child;
    if (h == 1)
        switch ((**Parent).Balance)
        {
            case -1:
                (**Parent).Balance = 0;
                h = 0;
                break;
            case  0:
                (**Parent).Balance = 1;
                h = 0;
                break;
            case  1:
                Child = (**Parent).Right;
                if (((*Child).Balance == 1) || (*Child).Balance == 0)
                {
                    (**Parent).Right = (*Child).Left;
                    (*Child).Left = *Parent;
                    if ((*Child).Balance==0)
                    {
                        (*Parent)->Balance = 1;
                        Child->Balance = -1;
                        h = 0;
                    }
                    else
                    {
                        (*Parent)->Balance = 0;
                        Child->Balance = 0;
                    }
                    *Parent = Child;
                }
                else
                {
                    Right2Rotation(Parent, Child);
                }
                break;
        }
}
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
35
36
37
38
39
40
void TMain::AVL_Tree::bal_left(AVLT **Parent)
{
    AVLT *Child;
    if (h == 1)
        switch ((**Parent).Balance)
        {
            case 1 :
                (**Parent).Balance = 0;
                h = 0;
                break;
            case 0 :
                (**Parent).Balance = -1;
                h = 0;
                break;
            case -1:
                Child = (**Parent).Left;
                if (((*Child).Balance == -1) || (*Child).Balance == 0)
                {
                    (**Parent).Left = (*Child).Right;
                    (*Child).Right = *Parent;
                    if ((*Child).Balance == 0)
                    {
                        (*Parent)->Balance = -1;
                        Child->Balance = 1;
                        h = 0;
                    }
                    else
                    {
                        (*Parent)->Balance = 0;
                        Child->Balance = 0;
                    }
                    *Parent = Child;
                }
                else
                {
                    Left2Rotation(Parent, Child);
                }
                 break;
        }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru