0
我想在C++上创建一个二叉树类,并迄今在插入和树销毁方法成功。然而,我被卡住了,并且诚实地完全丧失了搜索功能。C++二叉树帮助w /模板
具体来说,它不是混淆我的算法,而是尝试返回类的嵌套结构时的语法。
template<typename T>
class BinaryTree{
struct TreeNode{
T item;
TreeNode *leftNode;
TreeNode *rightNode;
};
public:
BinaryTree();
~BinaryTree();
void insert(T x);
void remove(T x);
TreeNode *search(T x);
private:
TreeNode *mainNode;
void insert(T x, TreeNode *node);
void destroyTree(TreeNode *x);
TreeNode *search(T x, TreeNode *node);
};
//return pointer to seached object
template <typename T>
typename BinaryTree<T>::TreeNode BinaryTree<T>::*search(T x){
return search(x, mainNode);
}
template <typename T>
typename BinaryTree<T>::TreeNode BinaryTree<T>::*search(T x, BinaryTree<T>::TreeNode *node){
/* problem here */
return NULL;
}
我似乎无法设置我的*搜索方法的参数中设置*节点的类型。最初,我被困在返回类型中,但是通过在返回类型上使用typename和解析运算符找到解决方案。 (即typename BinaryTree :)如果我错了,我会非常感谢一些指导。
那么,什么是你得到的错误? – 2014-10-31 09:28:06