Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2013, 00:13   #1
Teropan231
 
Регистрация: 07.10.2013
Сообщений: 9
По умолчанию Подскажите, как дописать одну функцию для моего Дерева пожалуйста

Подскажите, как дописать одну функцию для моего Дерева пожалуйста:
По заданным значениям "х" рассчитать число всех узлов с глубиной "х" в заданном дереве. Весь код компилируется, но функция sum работает неправильно как-то. Она не считает количество узлов.
Код:
#include <iostream>
#include <conio.h>
using namespace std;

struct Node 
{
   int x; 
   Node *l,*r;
};

void show(Node *&Tree) 
{
    if (Tree!=NULL)
    {
       show(Tree->l); 
       cout<<Tree->x; 
       show(Tree->r); 
    }
}

void add_node(int x,Node *&MyTree) 
 {
    if (MyTree) 
    {
   if (x < MyTree->x)
      add_node(x, MyTree->l);
   else
      add_node(x, MyTree->r); 
 } else {
    MyTree=new Node; 
    MyTree->x=x; 
    MyTree->l=MyTree->r=NULL; 
 }
}
int sum (Node *&Tree,int x)
{
    if (Tree==NULL) 
    return 1;
    else
    {

        for (int i=0;i<x;++i) 
        (sum(Tree->l,--x)+ sum(Tree->r,--x));
         return (sum(Tree->l,--x)+ sum(Tree->r,--x));

    }

}
void DeleteTree(Node *Tree)
{
     if (Tree)
     {
           DeleteTree(Tree->l);
           DeleteTree(Tree->r);
           delete Tree;
           Tree = NULL;
     }
}
int main()
{
   Node *Tree=NULL;  
  int z,k;
  cin >> z;
      for (int i=0;i<z;i++) 
      {
          cin >> k;
          add_node(k,Tree);
      }
      show(Tree);
      DeleteTree(Tree);
      cin.get();
      getch();
   return 0;
}
Teropan231 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос для линуксоидов: как определить номер моего LPT arcer Общие вопросы C/C++ 1 29.07.2010 22:00
Подскажите функцию для C# virus99 Общие вопросы .NET 1 23.09.2009 00:16
Подскажите пожалуйста какую функцию необходимо использовать... Андрю)(@ Паскаль, Turbo Pascal, PascalABC.NET 1 10.12.2008 00:03
Подскажите пожалуйста какую функцию необходимо использовать... Андрю)(@ Помощь студентам 1 09.12.2008 23:53
Подскажите пожалуйста как написать или какие разделы/библиотеки изучить для написания программы в делфи7 CeLaVie Помощь студентам 2 27.08.2008 23:47