Реализация дерева 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;
}
.
.
.
}

Какая разница? Моя реализация невозможна с точки зрения компилятора?

0

Решение

Технически вы правы, и узлы не нужны, хотя помните, что C ++ — это язык ООП, а нужный вам объект — это AVLTree, состоящий из узлов.

1

Другие решения

Других решений пока нет …