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

Ваш аккаунт

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

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

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

Бинарное дерево, вставка элементов

73K
15 декабря 2011 года
Zzema
13 / / 10.11.2011
Пишет, что Tree вызывается без инициализации..
warning C4700: uninitialized local variable 'Tree' used
А как его еще проинициализировать?

Код:
struct node
{
    int Key;
    int Count;
    node *Left;
    node *Right;
};
void Search (int x, node **p)
// Поиск вершины с ключом x в дереве со вставкой
// (рекурсивный алгоритм).
// *p - указатель на корень дерева.
{
  if (*p==NULL)
  { // Вершины с ключом x в дереве нет; включить ее.
    *p = new(node);(**p).Key = x; (**p).Count = 1;
    (**p).Left = (**p).Right = NULL;
  }
  else //Поиск места включения вершины.
    if (x<(**p).Key) //Включение в левое поддерево.
       Search (x,&((**p).Left));
    else if (x>(**p).Key) //Включение в правое поддерево.
           Search (x,&((**p).Right));
         else (**p).Count = (**p).Count + 1;
}


int main ()
{
node **Tree;
*Tree = NULL; // Построено пустое бинарное дерево.
int el;
cin>>el;
while (el!=0)
    { Search (el,Tree); cin>>el;}
}
14
16 декабря 2011 года
Phodopus
3.3K / / 19.06.2008
node **Tree = 0;
и вообще, кто разрешил *Tree = NULL; делать?

ой, или тут С. тогда не 0 а NULL
240
16 декабря 2011 года
aks
2.5K / / 14.07.2006
Цитата: Zzema

node **Tree;
*Tree = NULL; // Построено пустое бинарное дерево.


Так делать нельзя. Почитайте про указатели, как под них выделяется память, и что значит их разименовывать. )

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог