У нас есть проект класса для реализации дерева AVL. Вот два очень общая реализация:Реализация дерева 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;
}
.
.
.
}
Что на самом деле разница? Является ли моя реализация невозможной с точки зрения компилятора?
Во второй версии вы не должны иметь трех переменных Node * в AVLTree - только один (для корневого узла). – davmac