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

Несбалансированное бинарное дерево с рекурсивным обходом в обратном порядке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа изменения слов http://www.cyberforum.ru/cpp-beginners/thread325637.html
Программа должна изменять все слова во вводимой пользователем фразе следующим образом: первая буква слова ставится в конец, а после нее добавляются еще 2 буквы "ау". Т.е. например слово "jump" - "umpjay", "the" - "hetay" и т.п. Вот мой код, ошибка Access violation и выводит много бреда: #include <iostream> #include <cstdlib> #include <cstring> using namespace std; void printLatinWord(...
C++ ifstream одсчет количества симолов Здравствуйте!) Подскажите пожалуйста как при работе с потоком можно подсчитать количество строк, выделить память в массиве а потом туда записать все что нужно из потока. КОД НЕ ПРАВЕЛЬНЫЙ! std::ifstream ifs; ifs.open("text2.txt"); char* s_buf=new char; char** buf; long i=0; //подсчет количества строк http://www.cyberforum.ru/cpp-beginners/thread325627.html
C++ Как поменять расширение .cs на .cpp?
Всем привет! Подскажите как поменять расширение .cs на .cpp? Заранее спасибо
сдвиги длинного числа влево и вправо на заданное количество цифр C++
Добрый вечер. прошу поmощи в реализации программы. BigInteger.Используя перегрузку операторов, реализовать : сдвиги длинного числа влево и вправо на заданное количество цифр // (сдвиг вправо - деление на степень 10, влево - умножение) friend BigInteger operator <<(const BigInteger& x, int y); friend BigInteger operator >>(const BigInteger& x, int y);
C++ Бесконечная сумма http://www.cyberforum.ru/cpp-beginners/thread325559.html
Доброго времени суток уважаемые форумчане, возникло такое задание: Даны действительные числа х и eps. Вычислите приближенно значение бесконечной суммы S. Приближение считается достигнутым, если полученная сумма нескольких составляющих, и очередного слагаемого оказывается по модулю меньше eps. S - http://i028.***********/1106/26/dd268cbe653f.jpg помогите пожалуйста, я не до конца понял как...
C++ Функция для просмотра ключа в реестре Прошу Вас помочь разобраться с функциями реестра интересует просмотр реестра на наличие соответствующего ключа и его параметров. подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.06.2011, 00:34     Несбалансированное бинарное дерево с рекурсивным обходом в обратном порядке
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
#include <stdio.h>
#include <stdlib.h>
 
typedef struct NODE {
    int val;
    struct NODE * left;
    struct NODE * right;
} node_t;
 
int add_node(node_t ** root, int val){
    if ( ! *root ){
        if ( ( *root = (node_t*)calloc(1, sizeof(node_t)) ) == NULL )
            return -1;
        (*root)->val = val;
        return 0;
    }
    else if ( (*root)->val > val )
        return add_node(&((*root)->left), val);
    else if ( (*root)->val < val )
        return add_node(&((*root)->right), val);
    else
        return 0;
}
 
void del_nodes(node_t ** root){
    if ( *root ){
        del_nodes(&((*root)->left));
        del_nodes(&((*root)->right));
        free(*root);
        *root = NULL;
    }
}
 
void print_ascendant(const node_t * root){
    if ( root ){
        print_ascendant(root->left);
        printf("%d ", root->val);
        print_ascendant(root->right);
    }
}
 
void print_descendant(const node_t * root){
    if ( root ){
        print_descendant(root->right);
        printf("%d ", root->val);
        print_descendant(root->left);
    }
}
 
node_t * find_value(const node_t * root, int val){
    return ( ! root ) ? NULL : ( root->val == val ) ? (node_t*)root : ( root->val > val ) ? find_value(root->left, val) : find_value(root->right, val);
}
 
int main(void){
    node_t * root = NULL;
    int toFind;
 
    add_node(&root, 5);
    add_node(&root, 3);
    add_node(&root, 7);
    add_node(&root, 2);
    add_node(&root, 1);
    add_node(&root, 6);
    add_node(&root, 4);
 
    printf("Ascendant:  ");
    print_ascendant(root);
    printf("\nDescendant: ");
    print_descendant(root);
    
    printf("\nValue to search: ");
    scanf("%d", &toFind);
    printf("Value %sfound.\n", ( find_value(root, toFind) ) ? "" : "not ");
 
    printf("Another value to search: ");
    scanf("%d", &toFind);
    printf("Value %sfound.\n", ( find_value(root, toFind) ) ? "" : "not ");
 
    system("pause");
    del_nodes(&root);
    return 0;
}
 
Текущее время: 07:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru