Форум программистов, компьютерный форум CyberForum.ru

Подсчитать количество листьев в дереве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как вызвать метод объекта из контейнера? http://www.cyberforum.ru/cpp-beginners/thread521449.html
Есть абстрактный класс E, производный от CObject, в нем чистая виртуальная войдовская функция. Создал динамические объекты классов, которые являются производными от нашего абстрактного класса E и засунул их в контейнер CO/blist, как теперь запустить войдовскую функцию объекта любого? Например, CO/blist container; container.AddHead( динамическиий объект ); Как теперь вызвать его метод?...
C++ C++ шаблоны прототип и фабричный метод Под надзором программиста пару месяцев назад "написала" программу с шаблонами прототип и фабричный метод (программа дописана не совсем до конца) для научно-исследовательской работы, по теме паттерны программирования. Теперь надо описать что эта программа делает и как в ней помогли шаблоны, какие задачи с помощь них решились и т.д. Очень надо, а я все забыла уже( Не могли бы вы мне помочь?! http://www.cyberforum.ru/cpp-beginners/thread521443.html
C++ Перевод десятичного во внутреннее представление. Побитовая операция
Всем привет! Есть код функции, переводящей десятичное число во внутренний код, но не могу понять, как она работает. Помогите, пожалуйста, разобраться. Желательно подробное объяснение. void perevod(char dec, char *bin) { for (int i = 0; i<=7; i++) bin = (dec >> 7-i) & 1; } и да, самый главный вопрос - почему тут битовая операция умножения на один? :(
Решение функции C++
Доброго времени суток, дамы и господа. Прошу о помощи в решении функции на С++ сама функция : f(x,y)=e^(-(x^2+y^2)) *( (arcsin (x/a) - arccos (y/b)) / ( tg^2 (x/Пи) + ctg^2 (y/Пи)) ) x,y,a,b -значения, вводимые с клавиатуры
C++ Как соединить TEMPLATE с кнопкой? http://www.cyberforum.ru/cpp-beginners/thread521431.html
//--------------------------------------------------------------------------- #pragma hdrstop #include "Add_printall.h"
C++ Внедрение DLL: Не получается вытащить данные из listview чужой программы. В общем ситуация такая. Есть чужая программа, в ней элемент управления(ЭУ) похож на listview, но его класс отличается от стандартного. В этом listview данные периодически обновляются из сети. Дллку я внедрил, а вот получить текст не получается. Сообщения хоть через макрос ListView_GetItemText, хоть через SendMessage не проходят. ListView_GetItemCount 0 возвращает, а ListView_DeleteAllItems... подробнее

Показать сообщение отдельно
VladSharikov
 Аватар для VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
18.03.2012, 19:15     Подсчитать количество листьев в дереве
Привет.
Задали курсовик =)
Все сделал, осталось подсчитать количество листьев в дереве.

Лист - это узел дерева, из которого не происходят никакие потомки. Короче указатели на левое и правое поддерево NULL.
Как это посчитать в коде? Я так понимаю нужна рекурсия. Не понимаю чего нужно сделать.

Что нибудь типа прямого обхода дерева с функцией проверки адресов указателей на поддеревья и подсчетом их?

Добавлено через 4 часа 32 минуты
C++
1
2
3
4
5
6
7
8
int list_count(Node* node)
{
 if (!node)
  return 0;
 if (!node->left && !node->right)
  return 1;
 return list_count(node->left) + list_count(node->right);
}
если кому надо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru