У меня возникли проблемы с работой с рекурсивной функцией, которая строит двоичное дерево.Проблема с созданием двоичного дерева из массива
tree_link tree_from_array_preorder(Item arr[], int N)
{
int pos =0;
int * pos_ptr=&pos;
//struct tree_struct treeOfLife;
if((N<1)|| (arr[0]==0))
return NULL;
tree_link root=new_tree_link(arr[pos]);
root->left=tree_from_array_preorder_aux(arr, pos_ptr, N);
root->right=tree_from_array_preorder_aux(arr, pos_ptr, N);
return root;
}
tree_link tree_from_array_preorder_aux(Item arr[], int *pos, int N)
{
if(arr[pos]==0)
return NULL;
tree_link root= new_tree_link(arr[pos]);
(pos)+=1;
root->left=tree_from_array_preorder_aux(arr, pos, N);
root->right=tree_from_array_preorder_aux(arr, pos, N);
return root;
}
Я продолжаю получать ошибки о конфликтующих типах между функцией aux и моим вызовом. Я почти уверен, что у меня появилось мое объявление указателя, и моя ссылка на указанный указатель. Любая помощь будет оценена и благодарит вас за ваше время.
- это дерево двоичного поиска? правильно? – lrleon
Вы объявляете прототип функции 'aux' над' tree_from_array_preorder'? Что такое текст ошибки? – AlexPogue
На самом деле я просто получил его работу. Я забыл объявить прототип в добавленном файле заголовка .h, который я использую для этой программы. Спасибо за ответ, но всегда находил комментарии, чтобы помочь больше, чем они причинили боль здесь. – JustaRedShirt