Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Высота бинарного дерева 
V
    Опции темы
m9yt
Дата 13.3.2010, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.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);
}



Модератор: не забываем пользоваться кнопочкой "Код"

Это сообщение отредактировал(а) bsa - 13.3.2010, 18:12
PM MAIL   Вверх
baldina
Дата 13.3.2010, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



высота идеально сбалансированного двоичного дерева h=log2(n)
Само дерево тут не нужно, только число элементов

Добавлено через 2 минуты и 5 секунд
понятно, что является ли оно деревом поиска, неважно

Это сообщение отредактировал(а) baldina - 13.3.2010, 18:20
PM MAIL   Вверх
m9yt
Дата 13.3.2010, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



baldina, но ведь если мы высчитаем по этой формуле, то высота будет не целым числом, а "высота дерева определяется количеством уровней, на которых располагаются узлы вычесть единицу", т.е. это число должно быть целым!не так ли?

Это сообщение отредактировал(а) m9yt - 13.3.2010, 18:38
PM MAIL   Вверх
baldina
Дата 13.3.2010, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



конечно, целым. округляйте - получите целое.
 
PM MAIL   Вверх
bsa
Дата 14.3.2010, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(baldina @  13.3.2010,  21:54 Найти цитируемый пост)
округляйте - получите целое.
причем, в большую сторону.
Идеально сбалансированное дерево


M
bsa
m9yt, если ответ на вопрос получен, то пометь тему решенной

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0857 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.