1 / 1 / 4
Регистрация: 01.10.2016
Сообщений: 247
1

Реализация ввода элементов в двоичное дерево

13.11.2017, 18:24. Показов 2803. Ответов 5

Author24 — интернет-сервис помощи студентам
Доброго времени суток. у меня возникла проблема с реализацией ввода элементов в двоичное дерево, которые удовлетворяют условию ниже поставленной задаче.
Набросал код, который вроде выводит кол-во элементов в дереве. но как создать то условие?
заранее спасибо!!


Пусть задано дерево двоичного поиска. Реализуйте подпрограмму подсчёта числа элементов, больших заданного.


// ConsoleApplication104.cpp: определяет точку входа для консольного приложения.
//

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
#include "stdafx.h"
 
#include <iostream> 
#include <iterator>
#include <deque>
#include <algorithm> 
using namespace std; 
 
class Node
{ public:
int value;
Node* left;
Node* right;
};
int count(Node * tree)
{
    if (tree == NULL)
        return 0;
    return count(tree->right) + count(tree->left) + 1;
}
int main()
{
Node* root = new Node();
 
int result = count(root);
printf("%d\n", result);
return 0;
}
Миниатюры
Реализация ввода элементов в двоичное дерево  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2017, 18:24
Ответы с готовыми решениями:

Двоичное дерево поиска: подсчет количества элементов в дереве
Помогите написать программу. Описать структуры данных, процедуры и функции, необходимые для работы...

Бинарное дерево. Реализация добавления элементов в цикле
Всем привет! Подскажите, пожалуйста, хочу написать программку для создания дерева так, чтобы...

Двоичное дерево
Здравствуйте! Помоги задачу решить! Сразу говорю: это не от лени, нам просто мало объясняют! Хотя...

Двоичное дерево
Помогите найти ошибку, в консоль вообще ничего не выводится: #include&lt;iostream&gt; #include&lt;string&gt;...

5
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,617
13.11.2017, 18:37 2
Ну как минимум прибавляй единицу только проверив своё условие. И второй параметр у count() должен быть.
0
1 / 1 / 4
Регистрация: 01.10.2016
Сообщений: 247
13.11.2017, 19:09  [ТС] 3
можете помочь с реализацией данных условий?

Мы недавно начали проходить тему деревьев по С++ и некоторые аспекты синтаксиса и взаимодействия функций и реализаций методов в них пока, к сожалению, в процессе моего изучения.
0
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,617
13.11.2017, 20:32 4
Да при чём тут деревья? Условие надо проверить.
C++
1
2
3
4
5
6
int count(Node * tree, int v)
{
    if (tree == NULL)
        return 0;
    return count(tree->right, v) + count(tree->left, v) + (value > v ? 1 : 0);
}
0
1 / 1 / 4
Регистрация: 01.10.2016
Сообщений: 247
13.11.2017, 21:15  [ТС] 5
спасибо, попытался исправить блок кода, но возникли некоторые проблемы с идентификатором value, и result (скрин)



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
// ConsoleApplication110.cpp: определяет точку входа для консольного приложения.
 
#include "stdafx.h"
#include <iostream> 
#include <iterator>
#include <deque>
#include <algorithm> 
using namespace std; 
 
class Node
{ public:
int value; // через Node* value выбивает ту же ошибку
Node* left;
Node* right;
};
int count(Node * tree, int v)
{
    if (tree == NULL)
        return 0;
    return count(tree->right, v) + count(tree->left, v) + (value-> v ? 1 : 0); // идентефикатор value не определен 
}
int main()
{
Node* root = new Node();
 
int result = count(root);
printf("%d\n", result);
return 0;
}
Миниатюры
Реализация ввода элементов в двоичное дерево  
0
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,617
13.11.2017, 21:19 6
Ну так вызов функции исправь.
0
13.11.2017, 21:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2017, 21:19
Помогаю со студенческими работами здесь

Двоичное дерево
Помогите пожалуйста построить двоичное дерево и найти в нём длину пути(количество ветвей от корня)...

Двоичное дерево
Добрый день! Если поможете хотя бы с несколькими стратегиями, буду благодарен! Задание звучит...

указатели. двоичное дерево
Всем добрый день. Объясните мне, пожалуйста, несколько вещей. 1.Вот, например. root-&gt;left ...

Построить двоичное дерево
1)Построить двоичное дерево и вывести его на экран (вывод на экран идет с корня, ниже наследники)...


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

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

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