Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
-DzH-
0 / 0 / 0
Регистрация: 24.10.2014
Сообщений: 2
1

Как создать 2-ое дерево со значениями 1-го? Не могу разобраться с указателями

24.10.2014, 00:38. Просмотров 426. Ответов 1
Метки нет (Все метки)

Вот код(недоработанный):
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
struct sNode {
    int value;
    sNode *left;
    sNode *right;
};
/* Функция, выделяющая новый узел с данными и ставящая указатели на NULL*/
sNode* GetNewNode(int data) 
{
    sNode* newNode = new sNode;
    newNode->value = data;
    newNode->left=newNode->right=NULL;
    return newNode;
}
/* Функция, вставляющая новый узел в дереве*/
sNode* Insert(sNode* root, int data)
{
    /* Если дерево пусто, возвращается один новый узел */
    if (root == NULL) {
        root = GetNewNode(data);
        return root;
    }
    /* Иначе повторять добавление вниз по дереву*/
    else if(data <= root->value) {
        root->left=Insert(root->left, data);
    }
    else {
        root->right=Insert(root->right, data);
    }
    return root;
}
/* Прямой обход дерева*/
sNode* print(sNode *tree)
{
    if(tree!=NULL) {
        cout<< tree->value<< " ";
        print(tree->left);
        print(tree->right);
    }
}
/* Удаление дерева*/
sNode* delete_tree(sNode *tree)
{
     if( tree != NULL )
    {
            delete_tree(tree->left);
            delete_tree(tree->right);
            delete tree;
    }
}
 
int main(void) 
{
    /* Первоначально дерево пусто*/
    sNode *root = NULL;
    int s, n;
    cout<<"Vvedite kolichestvo chisel\n";
    cin>>s;
    srand(time(0)); //Рандомные числа
    for(int i = 0; i < s; i++) {
    n = 1 + rand() % 10;
    root=Insert(root, n);       
    }
    print(root);
    cout <<endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2014, 00:38
Ответы с готовыми решениями:

Не могу разобраться с указателями
Здраствуйте все вот короче мне задали задачки на Си написать вот они собствено...

Не могу разобраться с указателями
Здравствуйте, никак не могу разобраться с этими указателями, вот есть одна...

Не могу разобраться с указателями!
Читаю Шилдт C++, не как не могу понять систему с указателями, вроде вот вот все...

Не могу разобраться с указателями(не понимаю сути освобождения памяти)
Вот я тоже дуб в указателях... помогите пожалуйста кому не лениво... с горем...

Создать дерево указателями и вывести примерное его изображение в консоль
Нужно создать дерево указателями и вывести примерное его изображение через...

1
Max Dark
шКодер самоучка
1968 / 1745 / 860
Регистрация: 09.10.2013
Сообщений: 3,853
Записей в блоге: 6
Завершенные тесты: 2
24.10.2014, 10:28 2
вроде так:
C++
1
2
3
4
5
6
7
8
9
10
11
sNode* copy_node(sNode* root)
{
    sNode* tmp
    if (root == NULL) { // с пустым узлом ничего не делаем
        return root;
    }
    tmp = GetNewNode(root->data); // копируем данные
    tmp->left=copy_node(root->left); // копируем левое поддерево
    tmp->right=copy_node(root->right); // копируем правое поддерево
    return tmp;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2014, 10:28

Не могу разобраться с значениями на двух графиках от «Munin»
Доброе время суток форумчане. Поставил «Munin», снял данные, получил...

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить:...

Не могу разобраться со схемой связей базы данных, как создать правильные зависимости?
Приветствую, необходима помощь, для облегчения работы хочу создать базу......


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

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

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