У меня возникли проблемы с доступом к элементам данных подкласса Node.Как получить доступ к элементам подкласса
template <class T>
class BinarySearchTree {
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;
};
};
Я пытаюсь написать две функции для этого двоичного дерева поиска GetHeight() и GETSIZE(), однако мне нужно получить доступ к правым и левым узлам (или детям) из двоичного дерева поиска для того, чтобы вычислить его. Вот код, который я прописан пытается попытаться это:
template <class T>
int BinarySearchTree<T>::getHeight() const {
//TODO
int number = 0;
Node * heightNode = new Node();
heightNode = _root;
if (left == NULL && right == NULL){
return 0;
}
else
{
number = max(right->height(), left->height()) + 1;
}
return height;
}
Мой мыслительный процесс, чтобы спуститься вниз как поддеревья и вернуть максимум каждого поддерева рассчитывать высоту.
template <class T>
int BinarySearchTree<T>::getSize() const {
// TODO
int size;
if(){
return 0;
}
inorderHelper(cout, this->Node->left); //L
size++; //V
inorderHelper(cout, this->Node->right);//R
return size;
}
Вот мой мыслительный процесс заключается в проведении в порядке обходе на бинарном дереве поиска, увеличивающегося размер для каждого узла.
'Node * heightNode = новый узел(); heightNode = _root; '- утечка много? –
Как так? Я должен сделать heightNode равным корню. –
Вы планировали рассказать о своей проблеме? Здесь я не вижу никаких подклассов. –