我正在为二叉树编写一个模板,并且不明白为什么我不能从该模板中的一个函数返回Node*.
码:
template<class T>
class Binary_Tree{
private:
struct Node{
T* data;
Node *left,*right;
Node(T* dat, Node* l, Node* r) : data(dat),left(l=0),right(r=0) {}
}*root;
public:
Binary_Tree() : root(0) {}
Node* find(T* dat);
....
};
template<class T>
Node* Binary_Tree<T>::find(T* dat, Node* current){
if (*current->data == *dat){
return current;
}else if(*current->data < *dat && current->left == 0){
return current;
}else if(*current->data > *dat && current->right == 0){
return current;
}else if (*current->data < *dat){
find(dat,current->left);
}else if(*current->data > *dat){
find(dat,current->right);
}else{
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
谢谢.
小智 5
完全限定返回类型到您的查找功能:
Binary_Tree<T>::Node* Binary_Tree<T>::find(T* dat, Node* current){ ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |