11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
1

Выводит некоректное число после выполнения программы по считыванию листьев в дереве

29.03.2018, 02:43. Показов 621. Ответов 1
Метки нет (Все метки)

Выводит некоректное число после выполнения программы по считыванию листьев в дереве.
Задание: Дан указатель на корень непустого дерева. Вывести количество листьев для данного дерева.
Выводит 00181069 list'ev, а должен выводить 3,вроде, листа. Т.к. схема дерева снизу. Заранее спасибо. (п.с. я не уверен в схеме, т.к. писал код давно).
10
6 11
5 8 15
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 "stdafx.h"
#include <iostream>
using namespace std;
struct Tree
{
    int a;
    Tree* right;
    Tree* left;
};
Tree* root;
Tree* cur;
Tree* prev;
int k = 0;
int Pods(Tree* root);
int main()
{
    root = new Tree;
    root->a = 10;
    root->left = root->right = NULL;
    ::prev = root;
    cur = new Tree;
    cur->a = 6;
    ::prev->left = cur;
    cur->left = cur->right = NULL;
    ::prev = cur;
    cur = new Tree;
    cur->a = 5;
    cur->left = cur->right = NULL;
    ::prev->left = cur;
    cur = new Tree;
    cur->a = 8;
    cur->left = cur->right = NULL;
    ::prev->right = cur;
    ::prev = root;
    cur = new Tree;
    cur->a = 11;
    cur->left = cur->right = NULL;
    ::prev->right = cur;
    ::prev = cur;
    cur = new Tree;
    cur->a = 15;
    cur->left = cur->right = NULL;
    ::prev->right = cur;
 
    cout << Pods << " list'ev" << endl;
    system("pause");
    return 0;
}
 
int Pods(Tree* root)
{
    if ((root->left == NULL) && (root->right == NULL))
    {
        k = k + 1;
        return k;
    }
    else
    {
        return Pods(root->left) + Pods(root->right);
    }
};
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2018, 02:43
Ответы с готовыми решениями:

Как в бинарном дереве у всех листьев вычесть введенное число?
вот кусок int main(void) { /* Первоначально дерево пусто*/ sNode *root = NULL; int...

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

Поиск листьев в дереве
Подскажите пожалуйста. Хочу изменить функцию вывода элементов дерева, так чтобы выводились те...

Подсчет листьев в дереве
Привет всем! Было задание написать функцию (countt t), считающую количество листьев у в бинарном...

1
7167 / 6142 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
29.03.2018, 07:48 2
C++
1
2
3
4
5
int Pods(Tree* root)
{
    if ((root->left == NULL) && (root->right == NULL)) return 1;
    else return Pods(root->left) + Pods(root->right);
};
C++
1
cout << Pods(root) << " list'ev" << endl;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2018, 07:48
Помогаю со студенческими работами здесь

Количество листьев в бинарном дереве
Задача: Найти количество листьев в дереве. Собственно ввод и вывод дерева есть: #include...

Найти количество листьев в дереве
Здравствуйте, у меня вроде все получилось сделать, только, почему всегда ответ получается 0, как...

Ошибка в считывание листьев в дереве
Написал программу для считывания листьев в дереве, но в строке 56 ошибка: invalid conversion from...

Вычислить количество листьев в бинарном дереве
Вычислить количество листьев в бинарном дереве.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru