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

Бинарное дерево. Поиск числа ветвей по значению - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать список вещественых чисел.Найти разность между наибольшим и наименьшим элементами. http://www.cyberforum.ru/cpp-beginners/thread305856.html
Создать список вещественых чисел.Найти разность между наибольшим и наименьшим элементами. Помогите пожалуйста!Вообще эти списки не разбираю(( Добавлено через 1 час 49 минут ВОТ ЧТО ПОЛУЧИЛОСЬ!!Нашла минимум и максимум!Помгите найти разность.Пожалуйста!!! /--------------------------------------------------------------------------- #include <vcl.h>
C++ Удаления узла бинарного дерева(не удаляя поддеревья) Помогите пожалуста чтото придумать ато ваще не приходит нечего в голову. У меня есть функция поиска элемента SearchTree(top,n1);//первая графа вершина дерева,втарая номер элемента структура вот такая вот struct Info { int n; char name; }; struct tree { http://www.cyberforum.ru/cpp-beginners/thread305855.html
C++ Разложение на простые слагаемые
помогите пожалуйста с заданием, работа на С++... загвоздка в том, что никто не может помочь с простыми числами, пожалуйста, кто знает как делать, помогите! Любое целое число большее 1 можно единственным способом представить в виде произведения простых множителей (если перечислять множители в неубывающем порядке). Но если попытаться представлять целые числа в виде суммы простых слагаемых...
Вопросы по строкам C++
Доброго времени суток. У меня несколько вопросов для понимания строк. 1) char a = {'a','b','c'}; cout << a; вывод: abc Вопрос: как компилятор понял, что a это строка, ведь я не добавлял завершающий нулевой символ. А если верить справочникам, насколько я помню, это обязательно. Или он сам его добавил? если да, то куда?
C++ Вывести на экран те элементы списка, которые больше своих соседей http://www.cyberforum.ru/cpp-beginners/thread305850.html
Дан список из n целых чисел a1,a2,..,an. Вывести на экран те элементы списка, которые больше своих соседей. Заранее спасибо за помощь!
C++ что-то не так Нужно сделать программу возвращающую произведение n последних элементов массива. Вот программа,но она почеу то возвращает n первых элементов,и непойм почему. #include <iostream> #include <cstdlib> #include <ctime> #include <iomanip> using namespace std; int proizv(int N, int a); подробнее

Показать сообщение отдельно
lasbat
2 / 2 / 0
Регистрация: 06.05.2010
Сообщений: 18
28.05.2011, 09:39
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
/* в файле input.txt храниться последовательность целых чисел. по входной последоваетлььности 
построить дерево бинарного поиска и найти для него самый короткий путь от корня до какого либо листа*/
//#include "stdafx.h"
#include "stdio.h"
#include "fstream"
#include "iostream"
using namespace std;
//ofstream out("output.txt");
ifstream in("input.txt");
struct Ttree
{
    int inf;
    Ttree *left;
    Ttree *right;
};
void add(int n, Ttree *&tr)//создаение дерева есть в лекциях вроде
{
    if(!tr)
    {
        tr= new Ttree;
        tr->inf=n;
        tr->left=tr->right=NULL;
    }
    else if(n<tr->inf) add(n,tr->left);
    else if(n>tr->inf)add(n,tr->right);
}
 
void check_son(Ttree *tr,int &num)
{
    if(tr)//пока есть элементы дерева
    {
        
       if(tr->right==NULL && tr->left==NULL) cout<<num<<" "<<tr->inf<<endl;//проверка, является ли элемент листом, если является, то выводим на экран его и счетчик
       
       else//если элемент не лист
       {
           check_son(tr->left,num);//рекурсивно проверяем его потомков и накручиваем счетчик на 1
           check_son(tr->right,num);
           num++;
       }       
    }   
}
 
void gotrough(Ttree *tr)
{
    if(tr)
    {    
        cout<<tr->inf<<" ";
        gotrough(tr->left);
        gotrough(tr->right);
    }
}
void del_tree(Ttree *&tr)//рекурсивное удаление дерева
{
    if(tr)
    {
        del_tree(tr->left);
        del_tree(tr->right);
        delete tr;
        tr=NULL;
    }
}
 
 
int main()
{
    int n=0,num=0,count=0,a;   
    cout << "calculating tree size... \n";
    Ttree *tree=NULL;//задаем пустое дерево
    while(in.peek()!=EOF)
    {
        in>>a;
        add(a,tree);//создаем дерево
        n++;
    }
    cout<<"calculated size is:  "<<n<<"\npress enter to continue";
    getchar();//для продолжения нажмите энтер    
    gotrough(tree);
    cout<<endl;
    check_son(tree,num);// функция которая делает задачу    
    cout<<num;
    in.close();
    //out.close();
    //system("pause");
}
из этой задачи легко переделать
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru