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

Заполнение дерева по заданным условиям - 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 4islo\n");
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; hf=FindFirstFile(directoryPath, &FindFileData); if (hf!=INVALID_HANDLE_VALUE) { do
C++ Заполнить очередь рандомом(начало я написала)
Буду очень благодарна за помощь. Вот у меня есть код. тут у меня функции добавления элементов, я хочу в еще одной функции пользователя заполнить свою очередь рандомом от 1 до 100. Мне это нужно для задания. мое задание "поместить максимальный элемент очереди на первую позицию.".я так понимаю,что очередь мне надо пересобрать. Но для начала нужно хотя бы ее заполнить, по этому прошу у вас помощи....
C++ Есть промежуток от [1, n]. Требуется вывести все простые числа http://www.cyberforum.ru/cpp-beginners/thread974331.html
Вот есть промежуток от 1 до n. Нужно вывести все простые числа на этом промежутке. Вопрос у меня лишь в том, как выполнить проверку на простоту числа. #include<iostream> using namespace std; int main() { int n,i; cin>>n; for (i=1; i<=n; i++) { if ("вот какое условие проверки здесь должно быть?")
C++ Наследования #include <iostream> #include <string> using namespace std; class student { protected: int sem; string name; float *make; подробнее

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

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

10.10.2013, 23:21. Просмотров 275. Ответов 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;
}
Миниатюры
Заполнение дерева по заданным условиям  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru