У нас есть проект класса для реализации дерева AVL.
Вот две очень общие реализации:
template<class T>
class AVLTree {
int key;
int height;
int BF;
T data;
AVLTree<T>* father, leftSon, rightSon;
.
.
.
}
Друг сказал мне, что я действительно должен использовать узлы, но он не смог объяснить почему.
Итак, вот вторая реализация, которую я видел во многих местах (используя Node):
template<class T>
class AVLTree {
int key;
int height;
int BF;
T data;
Node* father, leftSon, rightSon;
class Node {
int key;
int height;
int BF;
T data;
Node* father, leftSon, rightSon;
}
.
.
.
}
Какая разница? Моя реализация невозможна с точки зрения компилятора?
Технически вы правы, и узлы не нужны, хотя помните, что C ++ — это язык ООП, а нужный вам объект — это AVLTree, состоящий из узлов.
Других решений пока нет …