0

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

在 BST.h 文件中,我实现了所有私有成员、函数和公共函数。但是,我发现在哪里实现堆栈(指向的指针堆栈BSTNode)很麻烦。

会是这样吗

#ifndef BINARYSEARCHTREE_H
#define BINARYSEARCHTREE_H

class BinarySearchTree
{
   struct Node {
      Node* left;
      Node* right;
      int val;
   };
};

#endif

那么我是BinarySearchTree在同一个 .h 文件中的类内还是类外实现堆栈类?

教授没有要求 2 个不同的 .h 文件,所以我认为它应该在内部或外部。如果它在 binarysearchtree 类中,那么 stack 类的构造函数呢?

4

1 回答 1

1

您可能希望在类之外实现堆栈BST。通常,当嵌套类专门与父类一起使用时,会使用嵌套类。例如,Node是嵌套的,因为Node没有BST.

堆栈实际上与 . 无关,BST即使您将其用于BST. 如果你设计了一个好的stack,那将允许你重复使用它而不需要把它拉出来BST

在头文件中包含多个类声明并没有错,只要它们很小并且逻辑连接。但这归结为样式和项目要求。

于 2013-04-27T04:55:16.827 回答