Q:

Рекурсивная функция возвращает "мусор"

Приветствую. Почему функция возвращает странное число, хотя должна возвращать 0 или 1? Функция поиска элемента в авл-дереве. Самое странное что если элемент найден, то функция собирается вернуть 1, но после выхода из этого уровня(уровня на котором был найден искомый элемент) рекурсии собирается возвращать огромное число       16249360.
int Search(AvlTree* current, string x)
{
  if (!current)
      return 0;
  if (current->info._numberOfFlight == x)
  {
      current->info.set();
      return 1;
  }
  else
  {
      if (x < current->info._numberOfFlight)
          Search(current->left, x);
      else
          Search(current->right, x);
  }
}

A:

В блоке ELSE напишите не Search(...) а return Search(...). Дело в том, что ваша функция возвращает "адекватное" значение только в том случае, когда "провалится" в один из if-ов.

