0
0 комментариев

Например, есть бинарное дерево, глубиной n-этажей.
Не сортированное.
Первый вариант, что пришел мне в голову, это найти нужный элемент используя рекурсивный вывод функции, т.е.:

struct Tree{
Tree * left;
Tree * right;
int value;
};
bool ElemSearch(Tree *root, int search_elem)
{
     if(root->value==search_elem)
         return true;
     else
     if(root->left->value==search_elem)
            return true;
     else
      if(root->right->value==search_elem)
           return true;
      else
         ElemSearch(root->left, search_val);
//и так пока не будет найден искомый элемент
}

В-общем, задача, избавиться от рекурсии. Как это сделать?
Если для этого нужно прочитать все дерево в какой-нибудь вектор или массив, подскажите, как это лучше сделать.
Спасибо.


Добавить комментарий