2017-01-14 1 views
1

나는 C를 사용하여 간단한 AVL 트리 구현을 작성하고 있습니다. 여러 부분에서 내 코드에 문제가 있습니다. 때로는이 오류가 발생합니다. 간혹 역 참조가 제대로 작동하는 경우도 있습니다. 여기불완전한 타입 (struct 노드)에 대한 포인터를 역 참조

구조체 노드 보이는 방법입니다

여기
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; 
} 

도움을 주시면 감사하겠습니다. 감사합니다

+0

같은 파일에서'struct Node' 정의와이 오류를보고있는 코드가 있습니까? 그렇지 않다면, 코드가 어떻게 구성되었는지,'# include' 문이 어떻게 생겼는지 등에 대해 더 명확하게 표현할 수 있습니까? 이상적으로는 문제를 완벽하게 보여줄 간단한 재생기를 제공 할 수 있습니다. – larsks

+0

당신의 코드는 어디에 있습니까, 당신이 전화를 걸 때, 나는 당신의 코드를 의미합니까? –

+0

답변으로 전체 코드를 게시했습니다. 감사합니다. 감사합니다. –

답변

2

변경 struct node에서 struct Node로 변경하십시오.

관련 문제