[英]Where to implement a stack class (to be used in a non recursive binary search function)
首先,这肯定是我的功课,但我不会要求代码。
在BST.h文件中,我实现了所有私有成员,函数和公共函数。 但是,我发现在哪里实现堆栈(指向BSTNode
的指针堆栈)的BSTNode
。
会是这样吗
#ifndef BINARYSEARCHTREE_H
#define BINARYSEARCHTREE_H
class BinarySearchTree
{
struct Node {
Node* left;
Node* right;
int val;
};
};
#endif
那么我是在BinarySearchTree
类内部还是在同一.h文件中的类外部实现堆栈类?
教授没有要求2个不同的.h文件,所以我认为它应该在内部或外部。 如果它在binarysearchtree类内部,那么堆栈类的构造函数呢?
您可能想在BST
类之外实现堆栈。 通常,当嵌套类专门与父类一起使用时,将使用嵌套类。 例如,嵌套Node
是因为没有BST
就不会使用Node
。
堆栈实际上与BST
无关,即使您打算将其用于BST
。 如果您设计一个好的stack
,那么您就可以重用它,而无需将其拉出BST
。
只要头文件中包含多个并且是逻辑连接的类声明,这是不正确的。 但这归结为风格和项目要求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.