Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Вычислить n-ный член последовательности - исправить ошибки https://www.cyberforum.ru/ c-beginners/ thread29222.html
#include "stdafx.h" #include "stdio.h" #include "conio.h" #define A 30 int vvmas (int k,int a);// ввод массива int vivmas (int a,int k);//вывод float V (int k,int a);// вычисление...
C (СИ) Взаимодействие gets и scanf - Функция gets "пропускает" свой ввод
Здравствуйте! Столкнулся с такой проблемой: после использования функции scanf, функция gets "пропускает" свой ввод. Как можно обойти такое "взаимодействие"? Gets необходим для забивания предложения,...
C (СИ) Проверить правильность расстановки скобок
Не знаю в чем ошибка, программа не работает. Подскажите пожалуйста)) /* Проверить правильность расстановки скобок. */ #include <iostream> #include <stack> #include <string.h> using namespace...
C (СИ) Как из строки удалить начальные и конечные пробелы? удалить начальные и конечные пробелы?? Добавлено через 1 час 52 минуты 6 секунд Как проигнорировать пробелы в конце строки??? #include <iostream> using namespace std; int... https://www.cyberforum.ru/ c-beginners/ thread29113.html
C (СИ) Создать электронный учебник на тему "структурное программирование" https://www.cyberforum.ru/ c-beginners/ thread28982.html
у меня такая проблема, нужно составить электронный учебник на тему структурное программирование в Си, пожалуйста помогите кто чем может. (составлять можно в делфи или html.
Функция sizeof вызванная в другой функции выдает неправильное значение C (СИ)
Не могу понять, почему функция sizeof вызванная в другой функции выдает неправильное значение. #include<iostream.h> #include<iomanip.h> //ïðîòîòèï...
Найти в предложениях самое длинное слово, и вывести предложение с этим словом большими буквами C (СИ)
Как программу для следующей задачи: Ввести несколько предложений, найти в этих предложениях самое длинное слово и вывести предложение с этим словом на экран большими буквами.
C (СИ) Что выведет на экран программа Здравстуйте. Не буду говорить, куда и зачем мне это надо, так как неважно :) У меня вопрос. Что выведет на экран программа, написанная на языке программирования С. :-#include "stdio.h" int... https://www.cyberforum.ru/ c-beginners/ thread27853.html
C (СИ) Определить индексы максимального элемента массива https://www.cyberforum.ru/ c-beginners/ thread27748.html
Набросал кое-что. Программа работает, но естественно выдает индексы только одного элемента. Помогите придумать алгоритм, который может выдать несколько индексов, если максимальный элемент попадается...
C (СИ) Сделать так, чтобы не вызывать постоянно функцию random с различным числом k Помогите, пожалуйста, решить проблему. Есть функция, дающая случайные числа: #include <stdio.h> #include <stdlib.h> #include <math.h> //k - необходимое количество случайных чисел на выходе... https://www.cyberforum.ru/ c-beginners/ thread27530.html
576 / 570 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
12.04.2009, 11:43 0

Подсчитать количество элементов на n-м уровне бинарного дерева

12.04.2009, 11:43. Просмотров 7697. Ответов 8
Метки (Все метки)

Ответ

Пожалуйста, конечно хотя надо бы так подкорректировать мой код, иначе при большом числе уровней может некорректно считать.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int nelem(struct tnode *p, int level, int i)
{
    static int cnt = 0;
    
    if(p == NULL)
       return 0;
    else if(i == level)
       return p->elem;
    else {
       cnt += nelem(p->left, level, i+1);
       cnt += nelem(p->right, level, i+1);
    }
    return (i > 0) ? 0 : cnt;
}
Так будут суммироваться все значения поля elem (если это число) на заданном уровне. Но если надо просто посчитать сколько существует узлов на уровне, тогда "return p->elem" замените на "return 1". В качестве i передавать 0.

Вернуться к обсуждению:
Подсчитать количество элементов на n-м уровне бинарного дерева
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2009, 11:43
Готовые ответы и решения:

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

Подсчитать количество листьев дерева не на последнем уровне, имеющем листья.
Добрый день! Не могу разобраться со следующим: нужно подсчитать количество листьев не на последнем...

Рекурсия: подсчитать сумму элементов бинарного дерева
Написать программу, которая создает сбалансированное бинарное дерево. Написать рекурсивную функцию,...

Homelisp: подсчитать количество вершин бинарного дерева, значение которых меньше заданного N
Дано бинарное дерево содержащее целые числа. Подсчитать количество вершин дерева, значение которого...

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