gpt4 book ai didi

c++ - 二叉搜索树,非递归使用堆栈

转载 作者:行者123 更新时间:2023-11-28 07:38:44 24 4
gpt4 key购买 nike

关于在一个 .h 文件中包含两个单独的类,我应该了解什么?

我有一个包含所有成员以及公共(public)和私有(private)函数的二叉搜索树类。

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

然后按照该代码,我想设计一堆指向该二叉搜索树节点的指针。在我有的 same.h 文件中

class stack
{
Node* array;
//

};

Visual Studio 不显示链接并且不识别 Node*。在一个 .h 文件中声明两个单独的类是否可以,还是实现嵌套在二叉搜索树类中的堆栈类更好?

最佳答案

您已经声明了一个名为 Nodestruct,它嵌套在类 BinarySearchTree 中,因此如果您想要引用该 struct 在类之外,你需要这样引用它:

class stack
{
BinarySearchTree::Node* array;
//

};

这是否是好的设计是一个全新的问题,所以我建议在提出更多问题之前进一步了解实现。

编辑

如您所见,如果您想在类之外使用它,则有必要将嵌套结构设置为 public。这本身并不一定是坏的或错误的。您没有公开数据,只是一个声明。

你有两个选择:

  1. 公开嵌套结构。
  2. 将嵌套结构置于封闭类之外。

就我个人而言,我会选择第一个选项。

关于c++ - 二叉搜索树,非递归使用堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16250580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com