2015-11-22 2 views
0

У меня возникли проблемы с работой с рекурсивной функцией, которая строит двоичное дерево.Проблема с созданием двоичного дерева из массива

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 и моим вызовом. Я почти уверен, что у меня появилось мое объявление указателя, и моя ссылка на указанный указатель. Любая помощь будет оценена и благодарит вас за ваше время.

+0

- это дерево двоичного поиска? правильно? – lrleon

+0

Вы объявляете прототип функции 'aux' над' tree_from_array_preorder'? Что такое текст ошибки? – AlexPogue

+0

На самом деле я просто получил его работу. Я забыл объявить прототип в добавленном файле заголовка .h, который я использую для этой программы. Спасибо за ответ, но всегда находил комментарии, чтобы помочь больше, чем они причинили боль здесь. – JustaRedShirt

ответ

0

Я забыл объявить прототип в добавленном файле заголовка .h, который я использую для этой программы. ... - JustaRedShirt

Смежные вопросы