Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Высота бинарного дерева[C++]

44K
13 марта 2010 года
m9yt
25 / / 27.02.2010
Всем привет.
В общем, нужно найти высоту идеально сбалансированного бинарного дерева(не дерева поиска).
Количество элементов ввожу с клавы.
Вот код программы, если что.

#include <iostream>
#include<windows.h>
using namespace std;

struct point
{
int data;//информационное поле
point *left;//адрес левого поддерева
point *right;//адрес правого поддерева
};

point* Tree(int n, point *p)
{
point *r;
int nl,nr;
if(n==0){p=NULL;return p;}
nl=n/2;
nr=n-nl-1;
r=new point;
cout<<"элемент:";
cin>>r->data;
r->left=Tree(nr, r->left);
r->right=Tree(nl, r->right);
p=r;
return p;
}

void Print(point*p, int l)
{
if(p)
{
Print(p->left,l+5);
for(int i=0;i<l;i++)
cout<<" ";
cout<<p->data<<"\n";
Print(p->right,l+5);
}
}

void main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
int n,i=0;
cout<<"Задайте количество элементов дерева\n";
cin>>n;
point *root;
root=new point;
root=Tree(n, root);
Print(root,1);
}
14
15 марта 2010 года
Phodopus
3.3K / / 19.06.2008
помнится это log2(n+1)...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог