Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с изображениями https://www.cyberforum.ru/ cpp-beginners/ thread123348.html
Посоветуйте где можно почитать как работать с изображениями? Какую литературу почитать? И если можно простейший пример кода, который например меняет белый цвет в картинке на черный
Ученики школы С++ C++
Сведения об ученике состоят из его имени и фамилии и названия класса (года обучения и буквы), в котором он учится. Дан файл f, содержащий сведения об учениках школы. а) Выяснить, имеются ли в школе...
C++ Преобразовать последовательность S1,....Sn удалив из нее все запятые
1) Даны натур. числа n,символы S1,....Sn среди которых есть хотя бы одна точка. Преобразовать последовательность S1,....Sn удалив из нее все запятые, предшествующие первой точке, и заменив знаком +...
C++ найти количество слов в которых две или больше буквы "с" И так задача в том что бы найти количество слов в которых две или больше буквы "с". https://www.cyberforum.ru/ cpp-beginners/ thread123300.html
C++ GUI C++ https://www.cyberforum.ru/ cpp-beginners/ thread123283.html
Создать класс ModelWindow для работы с моделями экранных окон. В качестве полей задаются: заголовок окна, координаты левого верхнего угла, размер по горизонтали, размер по вертикали, цвет окна,...
C++ Побитовые операции - нужна литература
подкинте пожалуйста статеек или литературы о использовании побитовых операций на си, вчастнастности мне нужны операции над шестнадцатеричным представлением числа
C++ как то не получается...
друзья что такое stdin,stdout,oN,packover????можете объяснить плиз?!
C++ блок-схема #include <stdio.h> #include <string.h> #include <conio.h> #define MAXLEX 1024 int main(void) { char s, *p, *lexs; int i; printf("Enter string: "); if(fgets(s, sizeof(s),... https://www.cyberforum.ru/ cpp-beginners/ thread123261.html
C++ Подсчет произведения элементов матрицы, значения которых кратны 3 https://www.cyberforum.ru/ cpp-beginners/ thread123252.html
Составить программу для подсчета произведение ячеек двумерной целочисленной таблицы В, что складывается с 5 строк и 4 столбцов, которые имеют значения, кратные 3. Сформировать матрицу при помощью...
C++ Обработка строк. Дана строка и слово. Составить функцию, которая образует массив строк, оканчивающихся заданным словом. Каждая новая строка должна начинаться заглавной буквой. Те у нас имеется строка, в нее нужно... https://www.cyberforum.ru/ cpp-beginners/ thread123245.html
1 / 1 / 1
Регистрация: 13.09.2009
Сообщений: 96
05.05.2010, 00:36  [ТС] 0

Количество узлов на каждом уровне

05.05.2010, 00:36. Просмотров 3522. Ответов 12
Метки (Все метки)

Ответ

Программа работает, но не уверен, что правильно...

В файле записаны такие числа: 1, 2,3,4,5

Результат : lvl<1> = 1 , lvl<2> = 2,lvl<3> = 1 , lvl<4> = 1 , lvl<5> = 1

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
#include <stdio.h>
#include <stdlib.h>
typedef struct item {
  int data;
  struct item *left;
  struct item *right;
} Item;
 
void AddNode(int data, Item **node);
int get(Item * node,int n,int c);
void lvl(Item * root);
 
 
 
int main(void)
{
  char buffer[512];
  int i;
  Item *root = NULL; 
  FILE *fp = fopen("ex52.txt", "r"); 
 
  if (!fp) exit(1); 
  
  while (fgets(buffer, 512, fp) != NULL)
    AddNode(atoi(buffer), &root); 
  lvl(root);
  fclose(fp);
  /*lvl(root);*/
  system("PAUSE");      
  return 0;
}
 
 void AddNode(int data, Item **node)
  {
  if (*node == NULL) {
    *node = (Item *)calloc(1, sizeof(Item));
    (*node)->data = data;
    (*node)->left = (*node)->right = NULL;
  } else {
    if (data < (*node)->data)
      AddNode(data, &(*node)->left);
    else if (data > (*node)->data)
      AddNode(data, &(*node)->right);
    else
      puts("There is such element in the tree");
  }
}
 int get(Item * node,int n,int c)
{
       if(n == c)  return 1;
        return ((node->left)?get(node->left,n,c+1):0) + ((node->right)?get(node->right,n,c+1):0);
}
 
 void lvl(Item * root){
  int t = 0, l = 0;
    while((l = get(root, t++, 0)) != 0){
          printf("lvl(%d) = %d\n", t, l);
  }
 }


Вернуться к обсуждению:
Количество узлов на каждом уровне
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2010, 00:36

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

Бинарные деревья. Найти количество узлов на n уровне
Коротко о программе. Дано бинарное дерево. Нужно нерекурсивно(через стеки) найти количество узлов...

Количество атомов на каждом уровне вложенности
Здравствуйте! Собственно, задача состоит в том, чтобы сформировать список следующего вида: ((lvl1...

Найти количество атомов многоуровневого списка на каждом уровне
Здравствуйте, нужна помощь, вот задание: Найти количество атомов списка с подсписков. Знаю что...

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

Бинарные деревья в списке: определить количество отрицательных узлов в каждом дереве
ребят, помогите доделать прогу, есть список, а в нем бинарные деревья, нужно чтобы она выводила мне...

Подсчет количества вершин на каждом уровне дерева
В общем я написал функцию, но что-то он считает неверно. Не могли бы вы мне помочь разобраться? ...

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