Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обьясните построчно код (вычесление факториала) http://www.cyberforum.ru/cpp-beginners/thread974375.html
#include <stdio.h> unsigned long array = {1}; unsigned long len= 1; void main() { unsigned long i; unsigned long l; unsigned long cn; unsigned int N; printf("\nVvedite polozhitel'noe...
C++ Вывод массива на консоль Не выводится массив на консоль. #include <iostream> #include <conio.h> using namespace std; void main() { int i,j,a,n,t,m; cout<<"Input n"; cin>>n; http://www.cyberforum.ru/cpp-beginners/thread974372.html
C++ Мультипоточность при обходе файлов
Доброго времени суток. Имеется папка с достаточно большим количеством файлов (>300 000). Обычный проход всех файлов осуществляется так : WIN32_FIND_DATA FindFileData; HANDLE hf;...
C++ Заполнить очередь рандомом(начало я написала)
Буду очень благодарна за помощь. Вот у меня есть код. тут у меня функции добавления элементов, я хочу в еще одной функции пользователя заполнить свою очередь рандомом от 1 до 100. Мне это нужно для...
C++ Есть промежуток от [1, n]. Требуется вывести все простые числа http://www.cyberforum.ru/cpp-beginners/thread974331.html
Вот есть промежуток от 1 до n. Нужно вывести все простые числа на этом промежутке. Вопрос у меня лишь в том, как выполнить проверку на простоту числа. #include<iostream> using namespace std; int...
C++ Наследования #include <iostream> #include <string> using namespace std; class student { protected: int sem; string name; float *make; подробнее

Показать сообщение отдельно
NightVVanderer
1 / 1 / 0
Регистрация: 27.05.2012
Сообщений: 16

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

10.10.2013, 23:21. Просмотров 285. Ответов 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;
}
0
Миниатюры
Заполнение дерева по заданным условиям  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.