在哪里实现堆栈类(在非递归二进制搜索函数中使用)



首先,这肯定是我的作业,但我不会要求代码。

在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中拉出来。

在头文件中包含多个类声明是正确的,只要它们很小,并且在逻辑上是连接的。但这归结为风格和项目需求。

最新更新