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

Определить количество уровней дерева и вычислить сумму значений узлов на каждом уровне - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Преобразование int к char http://www.cyberforum.ru/cpp-beginners/thread855982.html
Вот код #include <stdio.h> #include <math.h> #include <iostream.h> #include <cstdio> #include <fstream> #include <cstdlib> #include <string> using namespace std; #include <stdlib.h>
C++ Ошибка в проекте Данная программа должна считать количество прямоугольников площадь которых больше средней и количество кубов ,но почему то вылетает ошибка при вводе количества параллелепипедов хотя при вводе количества прямоугольников все хорошо ,а код одинаков.И еще почему программа работает не корректно так как считает не все прямоугольники а только последний и на основание него пишет результат. Помогите... http://www.cyberforum.ru/cpp-beginners/thread855973.html
Программа выдает одну и ту же ошибку C++
Программа выдает одну и ту же ошибку Parameter argc/argv never used Как ее исправить? Программный код на С++ написанный в Borland 3.1 #include <stdlib.h> #include <iostream.h> #include <iomanip.h> int **createMatrix(int size) {
C++ Не работает программа
Раньше я программировал на планшете, но сейчас попробовал в DEV-C++. Сделал программу, откомпилировал, пробую запустить, а окно программы открывается, и сразу закрывается... Что делать? Я а планшете запускал,там всё работает... #include <iostream> #include <math.h> using namespace std; int main() { system("cls");
C++ Значение оператора return http://www.cyberforum.ru/cpp-beginners/thread855949.html
Прочитал про оператор return, но не очень понятно про его. Как он используется ниже (объясните), может после этого примера что-либо прояснится относительно return. #include <stdio.h> #include <conio.h> int MinMax (int a, int b, int Max) //a, b, c - это формальные параметры. { if (a > b) {Max = a; return b;} else {Max = b; return a;} }
C++ Игра [Крестики Нолики] C++ Всем привет. Возможно кому-то пригодится исходный код игры . Все очень просто и легко. Компилятор Borland C++ Builder 6. #pragma hdrstop #include <iostream> #include <fstream> #include <conio.h> #include <cstring.h> #include <string.h> #include <Windows> подробнее

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

Определить количество уровней дерева и вычислить сумму значений узлов на каждом уровне - C++

04.05.2013, 21:02. Просмотров 1391. Ответов 0
Метки (Все метки)

Делаю лабораторную по С++ а там задание:
Считав числовые значения из текстового файла, построить произвольное дерево, каждый узел которого будет любое количество дочерних узлов.
- Определить количество уровней дерева.
- Вычислить сумму значений узлов на каждом уровне и в крайнем слева и крайнем дело поддерева.
Я смог сделать что бы считывалось из файла и помещалось в дерево значения. Как сделать подчёркнутые пункты.
Вот код:
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include<iostream>
#include<fstream>
using namespace std;
struct node
{
    int val;
    int num;
    node *left, *right;
};
node *root;
 
void read(int &chis)
{
    int k;
    ifstream file("text.txt");
    while(!file.eof())
    {
        file>>k;
        chis++;
    }
    file.close();
}
 
void print(node **rott,int glub)
{
    if((*rott!=NULL))
    {
        print(&((*rott)->left),glub+1);
        for(int i=0;i<glub;i++)
            cout<<"   ";
        cout<<(*rott)->val<<endl;
        print(&((*rott)->right),glub+1);
    }
    
}
int g=0;
 
void add(node **ptr,int chis,ifstream &file,int *mas)
{
    int numb,Left,Right;
    
    
    if(chis==0)
        *ptr=0;
    else
    {
        
        Left=chis/2;
        Right=chis-Left-1;
        file>>numb;
        *ptr=new node;
        (*ptr)->val=numb;
        (*ptr)->num=g;
        mas[g]=numb;
        g++;
        (*ptr)->left=0;
        (*ptr)->right=0;
        add(&((*ptr)->left),Left,file,mas);
        add(&((*ptr)->right),Right,file,mas);
        
    }
    
}
 
void prefix(node **curr,int &k)
 {
    
     if (!curr)
         return;
     if((*curr)!=0)
     {
         k=k+((*curr)->val);
         cout<<k<<endl;
         prefix(&((*curr)->left),k);
         prefix(&((*curr)->right),k);
         k=0;
     } 
     
 }
 
int main()
{
    
    int k=0;
    int chis=0;
    read(chis);
    int max=chis;
    int* mas=new int[chis];
    
        for(int h=0;h<chis;h++)
            mas[h]=0;
    ifstream file("text.txt");
    root=NULL;
    add(&root,chis,file,mas);
    cout<<endl<<endl;
    for(int i=0;i<chis;i++)
        cout<<mas[i]<<" ";
    cout<<endl;
 
    cout<<endl<<endl;
    print(&root,0);
    //razmer(&root,k);
    cout<<k;
    cout<<endl;
    cout<<endl;
    system("pause");
}
Помогите пожалуйста!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru