0 / 0 / 0
Регистрация: 19.11.2019
Сообщений: 14
1

В построенном дереве необходимо подсчитать число элементов, больше заданного, которое вводится с клавиатуры

05.12.2020, 18:54. Показов 504. Ответов 0

Author24 — интернет-сервис помощи студентам
Напишите программу, которая формирует бинарное дерево поиска, выводит построенное дерево на экран. Данные для построения дерева вводиться с клавиатуры. Выбор способа ввода данных выполняется во время работы программы. В построенном дереве необходимо подсчитать число элементов, больше заданного, которое вводится с клавиатуры.

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
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
 
struct NodeTree
{
    int key;
    NodeTree* Left;
    NodeTree* Right;
};
NodeTree* BinaryTree;
 
void CreateTree()
{
    BinaryTree = NULL;
}
 
NodeTree* AddNode(NodeTree* node, int k)
{
    if (node == NULL)
    {
        node = (NodeTree*)malloc(sizeof(NodeTree));
        if(!node)
        {
            printf("Память не доступна!");
            return NULL;
        }
        node->key = k;
        node->Left = NULL;
        node->Right = NULL;
    }
 else
    if (k < node->key)
        node->Left = AddNode(node->Left, k);
    else
        node->Right = AddNode(node->Right, k);
 return(node);
}
 
void DeleteTree(NodeTree* node)
{
    if (node != NULL)
    {
        NodeTree* p;
        DeleteTree(node->Left);
        DeleteTree(node->Right);
        p = node;
        node = NULL;
        free(p);
    }
}
 
void PrintTree(NodeTree* node, int lvl)
{
    if (node != NULL)
    {
        PrintTree(node->Right, lvl + 1);
        for(int i = 0; i < lvl; i++)
            {
                printf(" ");
            }
        printf(" %d\n", node->key);
        PrintTree(node->Left, lvl + 1);
    }
}
 
int main()
{
    setlocale(0, "");
    int k, value = 0, q = 0;
    CreateTree();
    printf("\n Введите количество элементов в дереве: ");
    scanf("%d", &k);
    printf("\n\n Элементы:\n");
 
    for (size_t i = 0; i < k; i++)
        {
            scanf(" %d", &value);
            BinaryTree = AddNode(BinaryTree, value);
        }
 
    printf("\n Двоичное дерево:\n");
    PrintTree(BinaryTree, 0);
    DeleteTree(BinaryTree);
 
 system ("PAUSE");
 return 0;
}
Не могу понять, как обращаться к элементам дерева и сравнивать их с числом, которое вводится с клавиатуры.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2020, 18:54
Ответы с готовыми решениями:

Как шестизначное число которое вводится с клавиатуры разбить на символы
Как шестизначное число которое вводится с клавы разбить на символы и проделать такие действия: 1)...

Определить, превышает ли сумма цифр числа число, которое вводится с клавиатуры
1.Дано двузначное число (вводится с клавиатуры). Написать программу определения: превышает ли сумма...

Во вводимой с клавиатуры последовательности из 20 целых чисел подсчитать число элементов, модуль которых больше 1000
Написать программу, которая во вводимой с клавиатуры последовательности, состоящей из 20 целых...

В заданной строке подсчитать каких букв «а» или «я» больше и на сколько (строка вводится с клавиатуры)
В заданной строке подсчитать каких букв «а» или «я» больше и на сколько (строка вводится с...

0
05.12.2020, 18:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2020, 18:54
Помогаю со студенческими работами здесь

Ввести с клавиатуры натуральное число N (N<1000). Вывести на экран наименьшее простое число, которое больше чем N
Буду очень благодарен если решите задачу. В задаче нельзя использовать массивы , другие классы....

Вводится четырёхзначное число (xysz). Вывести сумму xy + sz. Начальные данные необходимо ввести с клавиатуры
Вводится четырёхзначное число (xysz). Вывести сумму xy + sz. Начальные данные необходимо ввести с...

C клавиатуры вводится трехзначное число, подсчитать произведение цифр десятков и единиц
c клавиатуры вводится трехзначное число подсчитать произведение цифр десятков и единиц

Найти такое число Фибоначчи, которое больше заданного числа Z
Найти такое число Фибоначчи, которое больше заданного числа Z. Вычисление каждого числа Фибоначчи...

Найти такое число Фибоначчи, которое больше заданного числа Z
Вычисление каждого числа Фибоначчи оформить в виде процедуры

Напишите программу поиска первой степени двойки, которая больше m. Число m вводится с клавиатуры
Напишите программу поиска первой степени двойки, которая больше m. Число m вводится с клавиатуры


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru