错误:请求'* root'中的成员'data',其指针类型为'nodeBST *'
我只是使用指针指向取消引用数据成员。我是否遵循了错误的方法?
#include<iostream>
using namespace std;
class nodeBST
{
int data;
nodeBST *leftChild;
nodeBST *rightChild;
void insertNode(nodeBST **root , int data);
nodeBST* getNewnodeBST(int data);
void searchnodeBST(nodeBST **root , int data);
};
nodeBST* nodeBST::getNewnodeBST(int data)
{
nodeBST* temp = new nodeBST();
temp->data = data;
temp->leftChild = temp->rightChild = NULL;
return temp;
}
void nodeBST::insertNode(nodeBST **root , int data)
{
if(*root == NULL)*root = getNewnodeBST(data);
else if(data <= *root->data)*root->leftChild = insertNode(*root->leftChild , data);//error started from here
else *root->rightChild = insertNode(*root->rightChild , data);
}
void nodeBST::searchnodeBST(nodeBST **root , int data)
{
if(*root == NULL)return false;
else if(*root->data == data)return true;
else if(data <= *root->data) return searchnodeBST(*root->leftChild,data);
else return searchnodeBST(*root->rightChild,data);
}
int main()
{
nodeBST *root = NULL;
nodeBST::insertNode(&root , 12);
nodeBST::insertNode(&root , 125);
nodeBST::insertNode(&root , 13);
nodeBST::insertNode(&root , 188);
}