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

проверка на сбалансированность - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ задача к курсовой (Багаж пассажира) http://www.cyberforum.ru/cpp-beginners/thread859335.html
1. Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл , содержащий информацию о багаже нескольких пассажиров, информация о багаже каждого отдельного пассажира представляет собой соответствующую пару чисел а) Найти багаж, средний вес одной вещи в котором отличается не более чем на 0,3 кг от общего среднего веса вещи. б) Найти число пассажиров, количество вещей...
C++ Аналог system("cls"); Есть ли что то побыстрей? Нужно стирать содержимое с окна и выводить новое. Функция cls как то заторможено это делает. Нужно что бы он быстрей обновлялся. http://www.cyberforum.ru/cpp-beginners/thread859334.html
Работа с текстовые файлы, вычисления с матрицами C++
Добрый день. Не могу в такие задания. Буду благодарен за помощь. Задание: В текстовом файле записаны матрицы A(4x4), B(3x3), C(5x5). Прибавить элементы к диагональным элементам каждой из значений минимального по модулю ненулевого элемента массива. Полученные данные вывести в отдельных текстовых файлах. Для ввода, вывода и сложения к диагональным елементам числа использовать функции, а также...
C++ Можно ли переделать метод ?
есть метод:Из многочисленных подходов к решению этой подзадачи наш выбор остановился на алгоритме, в основе которого лежит определение относительного положения точки и вектора на плоскости. Вектор — это направленный отрезок прямой линии, начинающийся в точке beg_p и заканчивающийся в точке end_p. При графическом изображении конец вектора украшают стрелкой. Теперь призовите ваше пространственное...
C++ Работа с массивами C++ http://www.cyberforum.ru/cpp-beginners/thread859302.html
Имеем код, здесь у меня есть массив в нем задан алфавит, затем мы заменяем к примеру пять первых символов этого алфавита, как сделать проверку , чтобы символы которые мы вбили первые пять, уже не повторялись, далее, а далее по алфавиту все продолжалось, НАПРИМЕР: был алфавит ABCDEFG....и т.д. мы заменили первые 5 символов таким образов D A B F G, и затем вывод на экран будет таков: сначала наши 5...
C++ Работа с файлами Беда. Пишу программу для генерации онлайн тестов из обычного текстового файла. И столкнулся с такой проблемой. Файл будущего теста имеет вид: 1. Vopros (1) Otvet 11 (0) Otvet 12 (1) Otvet 13 2. Vopros (0) Otvet 21 (0) Otvet 22 подробнее

Показать сообщение отдельно
Lonter
1 / 1 / 0
Регистрация: 22.04.2013
Сообщений: 45
09.05.2013, 12:32     проверка на сбалансированность
Ребят помогите, нужно проверить, является ли двоичное дерево поиска сбалансированным!

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdio.h>
#include <conio.h>
 
struct node // Структура узла
{
int info ; 
int c ; 
node *ll,
*rl ; 
} ;
 
node *tree( node *p, int w );
 
void treeprint (node *p);
 
int tree_find (node *p);
 
int podschet( node *p);
 
void main ( )
{ 
    node *root; 
    int w, max, n; 
    FILE *rf;
    rf= fopen("in.txt", "r");
    root = NULL; 
    fscanf (rf, "%d", &w);
    while ( !feof ( rf ))
    { 
        root = tree ( root, w );
        fscanf(rf, "%d", &w);
    }
    treeprint(root);
    max = tree_find(root);
    printf("max = %d", max);
    n=podschet(root);
    printf("\nn = %d", n);
    getch();
}
 
node *tree(node *p, int w)
{
    if (p == NULL)
    { 
        p = new node;
        p->info = w;
        p->ll = NULL;
        p->rl = NULL;
        p->c = 1;
    }
    else
        if (w == p->info)
            p->c = p->c + 1; 
        else
            if (w < p -> info)
                p->ll = tree (p->ll, w);
            else 
                p->rl = tree (p->rl, w); 
    return p;
}
 
void treeprint (node *p)
{
    if (p!=NULL)
    {
        treeprint(p->ll); 
        printf("%d\t%d\n", p->c, p->info);
        treeprint(p->rl); 
    } 
}
 
int tree_find (node *p)
{
    if(p->rl!=NULL)
        return tree_find (p->rl);
    else
        return p->info;
}
 
int podschet( node *p)
{
    int n=0;
    while(p!=NULL)
    {
        p=p->rl;
        n++;
    }
    return n;
}
Добавлено через 19 часов 10 минут
пожалуууууйста))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru