Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++/C] Деревья


Автор: flow90 4.6.2007, 16:49
Задачка:
Написать программу, которая подсчитывает число вершин на n-ом уровне непустого  дерева  (корень  считать вершиной 0 уровня).
Одной ее не хватает для зачета...если кому не лень, то буду очень рада помощиsmile

Автор: Silent 5.6.2007, 08:49
Код

#include <iostream.h>
struct node
{
  int data;
  node *left;
  node *right;
};
typedef node* ptree;

ptree root;

void add (ptree * p, int i)
{
  if (*p == NULL)
  {
    *p = new node();
    (**p).data = i;
    (**p).left = NULL;
    (**p).right = NULL;
  }
  else
    if ((**p).data>i) add(&(**p).left,i);
    else add(&(**p).right,i);
}

int how_much(ptree p, int level, int need)
{
  if (p != NULL){
    if (level == need) return 1;
    else
      if (level < need) return how_much((*p).left,level+1,need)+how_much((*p).right,level+1,need);
  }
  else return 0;
}

int main()
{
  for (int i=0;i<20;i++) add(&root,random(100));
  cout << how_much(root,0,2);
  return 0;
}


Автор: flow90 6.6.2007, 13:04
только заметила, что тут есть ответ))
спасибо большое))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)