Я дал следующие функции для записиКак преобразовать сопзЬ к не сопзЬ
T getMinimum() const {}
и я должен использовать следующую вспомогательную функцию
void getMinimumHelper(Node * subtree, Node * &Location) const {}
Однако, я никогда не знал, как передать такую функцию. У меня есть двоичный класс дерева поиска с узлом в качестве члена класса BST. Я пробовал много вещей, таких как функция
Node * minNode = this->Node;
Node minNode = this->getMinimumHelper(findMin, findMin);
return minNode->data;
Helper:
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;
};
В чем проблема? Вы должны написать getMinimum()? – Venkatesh
Я предполагаю, что параметр Node * & minLocation в getMinimumHelper() - это то, где вы получите Node *, где значение min найдено. Передайте поддерево Node * в качестве первого параметра, в котором вы хотите узнать значение min in и получить Node * в обратном направлении, где min значение, я думаю, это то, как эта вспомогательная функция разработана. Узел * minNode = новый узел(); this-> getMinimumHelper (this-> Node, minNode); return minNode-> данные; – user1
Да, я понимаю, что это то, что мне нужно сделать, моя проблема заключается в передаче параметров в getMinimumHelper(), я знаю, что это BST, и поэтому самый левый узел должен быть минимальным значением, однако поскольку getMinimum() является const, я не могу использовать это value (просто попробовал этот указатель, this-> node) в моей функции getMinimumHelper, и я не могу найти способ изменить его, чтобы я мог. – user3376703