2017-09-28 3 views
-1
내가 삽입 기능에 다음과 같은 오류가 무엇입니까 이진 검색 트리의 최대 요소를 찾기 위해 코드를 작성했습니다

:예상되는 주요 표현 앞에 '*'토큰

:

main.cpp: In function ‘bstNode* Insert(bstNode*, int)’:

main.cpp:23:31: error: expected primary-expression before ‘*’ token

root->left= Insert(bstNode* left,data);

^

main.cpp:25:32: error: expected primary-expression before ‘*’ token

root->right= Insert(bstNode* right,data);

^

다음을 코드입니다

#include <iostream> 
using namespace std; 

struct bstNode{ 
    int data; 
    bstNode* left; 
    bstNode* right; 
}; 

bstNode* GetNewNode(int data){ 
    bstNode* newNode=new bstNode(); 
    newNode->data=data; 
    newNode->right=newNode->left=NULL; 
    return newNode; 
} 

bstNode* Insert(bstNode* root,int data){ 
    if(root==NULL) 
    root=GetNewNode(data); 
    else if(data <= root->data) 
    root->left= Insert(bstNode* left,data); 
    else 
    root->right= Insert(bstNode* right,data); 
    return root; 
} 

void FindMax(bstNode* root){ 
    if(root->right==NULL) 
    cout<<root->data; 
    else 
    FindMax(root->right); 
} 


int main() 
{ 
    bstNode* root=NULL; 
    int T; 
    cin>>T; 
    int i,data; 
    for(i=0;i<T;i++){ 
    cin>>data; 
    root=Insert(root,data); 
    } 
    FindMax(root); 

    return 0; 
} 

오류의 원인을 알려주십시오. 어떻게 해결할 수 있습니까?

답변

2

bstNode *root->left= Insert(bstNode* left,data);에 입력하고 다른 유사한 행을 right으로 전달할 수 없습니다.

대신 root->left= Insert(root->left,data);과 같은 것을 쓰고 싶습니까?

+0

예, 작동합니다. 고마워. 나는 바보 같은 질문을하는 것에 대해 유감스럽게 생각하며 데이터 구조에 익숙하지 않고 최근에 나무를 연구하기 시작했습니다. – shardul08

+0

@ shardul08 문제는 데이터 구조 나 나무와 아무 관련이 없습니다. 함수에 대한 장을 검토해야합니다. – user463035818

관련 문제