我得到了以下函数来编写
T getMinimum() const {}
我必须使用下面的辅助函数
void getMinimumHelper(Node * subtree, Node * &Location) const {}
但是,我从来不知道如何传递这样的函数。我有一个二叉搜索树类,其中一个节点作为 BST 类的成员。我已经尝试了很多东西,比如
Node * minNode = this->Node;
Node minNode = this->getMinimumHelper(findMin, findMin);
return minNode->data;
辅助函数:
void getMinimumHelper(Node * subtree, Node * &Location) const {
if (subtree == NULL){
Location = NULL;
}
if (subtree->left == NULL){
Location = subtree;
}
else{
getMinimumHelper(subtreeRoot->left, subtree);
}
}
但是我在'->'的右侧是非法的当然,无论出于何种原因,辅助函数都是无效的,因此它实际上不会返回任何内容。我已经为此工作了几个小时,但根本没有取得任何进展,也无法弄清楚。我还有很多像这样的辅助函数,但我不知道该怎么做。
类:
template <class T>
class {
private:
class Node {
public:
T data;
Node * left;
Node * right;
Node * parent;
Node() :left(NULL), right(NULL), parent(NULL) {};
Node(const T& item) {
data = item;
left = NULL;
right = NULL;
parent = NULL;
};
};
public:
BST();
BST(BST&);
~BST();
bool isEmpty() const;
bool search(const T&) const;
private:
Node * _root;
void getMaximumHelper(Node *, Node * &) const;
void getMinimumHelper(Node *, Node * &) const;
};
template <class T>
T BinarySearchTree<T>::getMinimum() const {
Node * minNode;
getMinimumHelper(_root, minNode);
return minNode->data;
};
我是一名优秀的程序员,十分优秀!