我正在编写代码来比较一个zipcode整数输入(ZNode object *n
)和输入z
的zipcode。比较它们时,我一直收到ZNode n
和ZNode AVLTree::*findZip(int z, ZNode *n){
if(z==n->zip || n==NULL){
return(n);
}
else if(z < n->zip){
findZip(z, n->left);
}
else if(z > n->zip){
findZip(z, n->right);
}
}
之间的比较错误。如何比较整数和指针?
{{1}}
答案 0 :(得分:0)
请参阅下面的修正和评论
ZNode AVLTree::findZip(int z, ZNode *n){ // ::findZip - No *
if(n==NULL || z==n->zip){ // Need to check for NULL first - perhaps nullptr
return(n);
}
else if(z < n->zip){
return findZip(z, n->left); // You need to return an answer!
}
else { // Just do findZip for the right or equals - for equals the above will match
return findZip(z, n->right); // Again return an answer
}
}
PS。可能最好不要使用递归。递归往往会在大树上破裂。