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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NightVVanderer
1 / 1 / 0
Регистрация: 27.05.2012
Сообщений: 16
#1

Заполнение дерева по заданным условиям - C++

10.10.2013, 23:21. Просмотров 276. Ответов 0
Метки нет (Все метки)

Здравствуйте! Мне нужно заполнить дерево по заданным условиям, но я не знаю как это сделать, помогите пожалуйста.
Условия:
От каждого узла дерева, начиная с корня, нужно создавать по 2 потомка, в одного записывается значение узла плюс 1,
в другой - значение узла умноженное на два. Значение корня и максимум вводятся пользователем. То есть создав 2 потомка от корня, надо создать по 2 потомка от каждого из них и так далее, пока один из потомков не превысит максимум, если превысит то все следующие потомки будут иметь значение NULL. И так до тех пор пока все листы дерева не станут равны NULL. Нарисовал как это примерно будет на картинке.
То как я реализовал дерево:
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
struct Node //Звено дерева
{
   int x; //То, что записывается в дерево
   Node *l,*r; //Это указатели на новые звенья
};
 
 void Show(Node *&tree) //Вывод на экран дерева.
 
{
    if (NULL==tree)    return;    //Если дерева нет, выход
   
    cout<<tree->x<<endl; //Посещение узла
    Show(tree->l); //Обход левое поддерево   
    Show(tree->r); //Обход правое поддерево   
}
 
 
void add(int x,Node *&tree) //В функцию принимается записываемый элемент и указатель на ссылку на структуру.
{
    if (NULL==tree) //если ничего нет
    {
        tree=new Node; //выделить память 
        tree->l=tree->r=NULL; //очистка участков для роста
        tree->x=x; //записывание в звено данные 
    }
 
    else if (NULL==tree->l) add(x,tree->l); //если слева участок не занят, подзвено создается там 
    else add(x,tree->r); //если занят, подзвено создается справа
}   
 
int _tmain(int argc, _TCHAR* argv[])
{
      int k,max; 
      cout << "Kol-vo=";
      cin >> k;
      cout << "Max kol-vo=";
      cin >> max;
      Node *Tree=NULL;  //Создается указатель, тип которого = звено дерева и инициализируется пустотой
      add(k,Tree); 
        Show(Tree); 
        cin.get();
      return 0;
}
Миниатюры
Заполнение дерева по заданным условиям  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2013, 23:21     Заполнение дерева по заданным условиям
Посмотрите здесь:

Выбрать из списка студентов удовлетворяющих заданным условиям - C++
есть список, содержащий фамилии студентов, их адреса и набранные баллы на вступительных экзаменах по математике и информатике, а также...

Найти целые числа удовлетворяющие заданным условиям - C++
Пользователь вводит любое целое число А. Необходимо вывести все целые числа В, для которых А делиться без остатка на В*В и не делиться без...

Исчисление суммы, количества элементов массива, удовлетворяющих заданным условиям - C++
В массиве записаны оценки учащегося по 10 предметам. Определить количество 4 и 5.

Исчисление суммы, количества элементов массива, удовлетворяющих заданным условиям - C++
Задан массив из 20 натуральных чисел. Найти последовательность из 5-ти элементов, сумма которых максимальна.

Исчисление суммы, количества элементов массива, удовлетворяющих заданным условиям - C++
В одномерном массиве содержатся только два одинаковых элемента. Найдите их. можно как то сделать что бы элементов было не 5 как в...

Исчисление суммы, количества элементов массива, удовлетворяющих заданным условиям - C++
В одномерном массиве содержатся только два одинаковых элемента. Найдите их.

Разбить шары на минимальное количество наборов удовлетворяющих заданным условиям - C++
Приветствую. Есть задача: На столе стоят n коробок с разноцветными шарами. Цвета пронумерованы от 1 до n. В i-й коробке лежит ai шаров...

Написать программу перебора слов, функций или чисел, удовлетворяющих заданным условиям - C++
Написать программу перебора слов, функций или чисел, удовлетворяющих заданным условиям. Каждое слово, функция или последовательность чисел...

Заполнение дерева рандомно - C++
Всем привет. Подскажите пж как можно заполнить дерево рандомно, а не с клавиатуры: #include&lt;iostream&gt; using namespace std; struct...

Заполнение особого бинарного дерева - C++
Собственно класс бинарного дерева я прописал (хоть и криво, не в этом дело). Но метод вставки не подходит к поставленной задачи. А именно:...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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