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

Найти всех двойников в данном целочисленном бинарном дереве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Генерация случайного числа каждую секунду http://www.cyberforum.ru/cpp-beginners/thread985695.html
Нужно каждую секунду генерировать случайное число. Ниже мой код, который выполняет задачу, но функция слип останавливает весь процесс и в дальнейшем может мешать (как например функция delay() в Ардуино). Есть ли еще какой-нибудь способ написать программу без ипользования Sleep() ? int x; for(int i=1;i<=5;i++){ x = rand() % 10; cout<< i <<" - "<< x <<endl; Sleep(1000); ...
C++ Формула подсчета количества итераций цикла for Доброго времени суток Помогите ответом/советом/уч. материалом Пусть, for( int i = 1; i <= 10; i++ ) ... имеем 10 итераций цикла for( int i = 11; i <= 17; i += 2 ) ... имеем 4 итерации цикла http://www.cyberforum.ru/cpp-beginners/thread985670.html
C++ Считать из файла определенную инфу в класс
Приветствую всех. Задача такая: Есть txt файл с инфой: 127 Киев-Львов 100 300 120 Москва-Киев 130 450 103 Будапешт-Москва 70 500 101 Донецк-Лисабон 35 430 Есть класс: class kassa {
C++ Получить из одной матрицы другую исходя из графической маски
Помогите разобраться с задачей! Сижу уже который день, никак не могу представить что тут к чему... Дана действительная матрица , i, j=1, ..., n. Получить действительную матрицу , i, j=1, ..., n, элемент bij которой равен сумме элементов данной матрицы, расположенных в области, определяемой индексами i,j так, как показано на рисунке ( область залита).
C++ Перегрузить функцию sub_array нахождения разности двух массивов и матриц http://www.cyberforum.ru/cpp-beginners/thread985622.html
Привет всем! Столкнулся со сложностями....Помогите сделать лабу! Задание: Перегрузить функцию sub_array нахождения разности двух массивов и матриц.
C++ Алгоритм удаления элемента из массива Помогите написать код:( Условие задачи таково: Заменить максимальный элемент из первых четырех его абсолютным значением, если они все отрицательны, иначе удалить только положительные элементы. подробнее

Показать сообщение отдельно
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
23.10.2013, 19:44  [ТС]     Найти всех двойников в данном целочисленном бинарном дереве
это тоже не то?
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
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
//Наша структура
struct node
{
    int info; //Информационное поле
    node *l, *r;//Левая и Правая часть дерева
};
 
node * tree=NULL; //Объявляем переменную, тип которой структура Дерево
 
/*ФУНКЦИЯ ЗАПИСИ ЭЛЕМЕНТА В БИНАРНОЕ ДЕРЕВО*/
void push(int a,node **t)
{
    if ((*t)==NULL) //Если дерева не существует
    {
        (*t)=new node; //Выделяем память
        (*t)->info=a; //Кладем в выделенное место аргумент a
        (*t)->l=(*t)->r=NULL; //Очищаем память для следующего роста
        return; //Заложили семечко, выходим
    }
       //Дерево есть
        if (a>(*t)->info) push(a,&(*t)->r); //Если аргумент а больше чем текущий элемент, кладем его вправо
        else push(a,&(*t)->l); //Иначе кладем его влево
}
 
/*ФУНКЦИЯ ОТОБРАЖЕНИЯ ДЕРЕВА НА ЭКРАНЕ*/
void print (node *t,int u) 
{
    if (t==NULL) return; //Если дерево пустое, то отображать нечего, выходим
    else //Иначе
    {
    print(t->l,++u);//С помощью рекурсивного посещаем левое поддерево
    for (int i=0;i<u;++i) cout<<"|";
    cout<<t->info<<endl; //И показываем элемент
    u--;
    }
    print(t->r,++u); //С помощью рекурсии посещаем правое поддерево
}
 
void main ()
{   
    int n; //Количество элементов
    int s; //Число, передаваемое в дерево
    cout<<"введите количество элементов  ";
    cin>>n; //Вводим количество элементов
 
    for (int i=0;i<n;++i)
    {
    cout<<"введите число  ";
    cin>>s; //Считываем элемент за элементом
   
    push(s,&tree); //И каждый кладем в дерево
    }
    cout<<"ваше дерево\n";
    print(tree,0);
    getch();       
}
Добавлено через 2 часа 5 минут
вот все переделала,но выводит неправильно.
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
89
90
91
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <clocale>
using namespace std;
//Наша структура
struct node
{
    int d;//элементы дерева
    node *l, *r;//Левая и Правая часть дерева
};
 
void MakeSubTrees(node *leaf)
{
    node *Top;int key;
    cout<<"введите текущий узел";
    cin>>leaf->d;
    cout<<"он имеет левое поддерево?";
    cin>>key;
    if (key==1)
    {
        (Top)=new node;
        leaf->l=Top;
        MakeSubTrees(Top);
    }
    else
        leaf->l=NULL;
    cout<<"он имеет правое поддерево?";
    cin>>key;
    if (key==1)
    {
        (Top)=new node;
        leaf->r=Top;
        MakeSubTrees(Top);
    }
    else
        leaf->r=NULL;
}
 
void MakeTree(node **Top)
{
    (*Top)=new node;
    MakeSubTrees(*Top);
}
 
int High(node *Top)
{ 
    int Highleft,Highright,H;
    if (Top==NULL)
        H=0;
    else
    {
        Highleft=High(Top->l);
        Highright=High(Top->r);
        if (Highleft>Highright)
            H=Highleft+1;
        else
        H=Highright+1;
    }
    return H;
}
void WayHoriz(node *Top,int level)
{
    if (Top!=NULL)
        if (level==1)
            cout<<Top->d;
        else
        {
            WayHoriz(Top->l,level-1);
            WayHoriz(Top->r,level-1);
        }
}
void ViewTree(node Top)
{
    int i,HighTree;
    HighTree=High(&Top);
    for (int i=0;i<HighTree;i++)
    {
        WayHoriz(&Top, i);
    }
}
void main()
{
    setlocale(LC_CTYPE, "Russian");
    node *Top;
    MakeTree(&Top);
    ViewTree(*Top);
    getch();
    return;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru