1
Я пишу простую реализацию дерева AVL с использованием C. У меня возникают проблемы с моим кодом в разных частях. Иногда я получаю эту ошибку, иногда разыменование работает очень хорошо.Указатель разыменования неполного типа (struct node)
Вот как мой структура узла выглядит:
struct Node
{
int data;
struct Node *left;
struct Node *right;
int height;
};
Вот где я получаю ошибку разыменования (именно на если (данные < (p-> данные)))
struct node* search(struct node* p, int data)
{
if (!p)
return NULL;
if (data < (p->data))
return search(p -> left, data);
else if (data > p -> data)
return search(p -> right, data);
else
return p;
}
Также здесь:
struct Node remove_min(struct Node *x)
{
if (x->left == NULL)
return x->right;
x->left = deleteMin(x->left);
return x;
}
Любая помощь будет оценена по достоинству. Thanks
Это определение «struct Node» и код, в котором вы видите эту ошибку в том же файле? Если нет, можете ли вы более подробно рассказать о том, как организован ваш код, какие выглядят ваши утверждения '# include' и т. Д.? В идеале вы можете предоставить простой проигрыватель, который полностью продемонстрирует проблему. – larsks
где ваш код, когда вы вызываете поиск, я имею в виду ваши коды основного? –
Я отправил весь свой код в качестве ответа, вы можете посмотреть его там, спасибо. –