Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 03.05.2013
Сообщений: 6
1

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

04.05.2013, 21:02. Просмотров 2617. Ответов 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");
}
Помогите пожалуйста!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2013, 21:02
Ответы с готовыми решениями:

Определить число узлов на каждом уровне дерева
Я не силен в деревьях, помогите пожалуйста

Количество узлов на каждом уровне
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; typedef struct item { int data; struct item *left; ...

Определить число листьев на каждом уровне дерева
Нужно составить такую функцию. Именно на каждом отдельном уровне, а не по дереву вообще.

Определить количество уровней двоичного дерева поиска
Привет всем неравнодушным)! Напишите элемент-функцию depth, принимающую в качестве аргумента...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2013, 21:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Определить количество узлов на каждом уровне данного бинарного дерева
Помогите с этой задачей) Определить количество узлов на каждом уровне данного бинарного дерева....

Определить число узлов на каждом уровне дерева
Помогите пожалуйста, нужно определить число узлов на каждом уровне дерева. За ранее спасибо.

Определить количество листьев на каждом уровне дерева итеративным способом
Здравствуйте, необходима помощь. Необходимо написать процедуру, определяющую количество листьев на...

Требуется определить количество уровней дерева
Подскажите пожалуйста как можно определить количество уровней дерева Приведу код: public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.