Форум программистов, компьютерный форум, киберфорум
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
0 / 0 / 0
Регистрация: 02.12.2008
Сообщений: 23
0

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

11.04.2009, 19:01. Просмотров 7647. Ответов 8
Метки (Все метки)

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

Обход дерева рекурсивно выглядит так:

C
1
2
3
4
5
6
7
8
9
obhod(btree*d)
{
if(d!=NULL)
 {
  обработка(d);
  obhod(d->left);
  obhod(d->right);}
 }
}
На всякий случай напишу, как ввожу дерево:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
btree *build_tree ()
    {
    btree *d;
    char sym;
    fscanf(fp,"%c",&sym);
    switch(sym)
      {
      case '(':   {
 
                   d=new btree;
                   fscanf(fp, "%c", &sym);
                   d->elem=sym;
                   d->left=build_tree();
                   d->right=build_tree();
                   fscanf(fp, "%c",&sym);
                   return d;
                   }
     case '0':  return NULL;
     case ',': d=build_tree();
               return d;
      }
      return NULL;
    }
ну и сам тип "дерево":
C
1
2
3
4
5
6
struct btree
  {
  char elem;
  btree *left;
  btree *right;
  };
Очень нужна помощь!!! Уже трое суток мучаюсь, и никак!

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

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

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

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

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

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