首先,这肯定是我的作业,但我不会要求代码。
在BST.h文件中,我实现了所有的私有成员、函数和公共函数。然而,我发现在哪里实现堆栈(指向BSTNode
的指针堆栈)的麻烦。
所以是
#ifndef BINARYSEARCHTREE_H
#define BINARYSEARCHTREE_H
class BinarySearchTree
{
struct Node {
Node* left;
Node* right;
int val;
};
};
#endif
所以我在同一个。h文件中实现BinarySearchTree
类内部或类外部的堆栈类吗?
教授并没有要求2个不同的。h文件,所以我认为它应该在里面或外面。如果它在binarysearchtree类中,那么堆栈类的构造函数呢?
您可能希望在BST
类之外实现堆栈。通常,当嵌套类专门与父类一起使用时,使用嵌套类。例如,Node
是嵌套的,因为没有BST
就不能使用Node
。
堆栈与BST
并没有真正的关系,即使你要把它用于BST
。如果你设计了一个好的stack
,这将允许你重用它,而不需要把它从BST
中拉出来。
在头文件中包含多个类声明是正确的,只要它们很小,并且在逻辑上是连接的。但这归结为风格和项目需求。