我们有一个类项目来实现 AVL 树。这里有两个非常通用的实现:
template<class T>
class AVLTree {
int key;
int height;
int BF;
T data;
AVLTree<T>* father, leftSon, rightSon;
.
.
.
}
一位朋友告诉我我真的应该使用 Nodes,但他无法解释原因。所以这是我在很多地方看到的第二个实现(使用 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;
}
.
.
.
}
真正的区别是什么?就编译器而言,我的实现是不可能的吗?