二叉搜索树 - PrintInOrder();.
Binary Search Tree - PrintInOrder();
本文关键字:PrintInOrder 搜索树 更新时间:2023-10-16
在我的BST模板化类中,有一个不带参数的PrintInOrder()
函数。
void BST<Type>::printInOrder() const{}
我看到了一些函数,它们都需要一个Node*
根作为参数,这是有道理的。
如何使用引用的函数进行递归以按顺序打印所有值?
法典:
/* I don't know if it's gonna help, but this is my class */
struct Node
{
Type m_data;
Node *m_left, *m_right;
Node(const Type& _data) : m_data(_data), m_left(nullptr), m_right(nullptr) {}
};
Node* m_root;
int m_size;
public:
BST();
~BST();
BST& operator=(const BST& that);
BST(const BST& that);;
void insert(const Type& v);
bool findAndRemove(const Type& v);
bool find(const Type& v) const;
void clear();
void printInOrder() const;
};
只需让 printInOrder
函数调用具有节点指针参数的帮助程序函数即可。
为了限制辅助函数的范围,它可以是例如
-
BST
类的私人static
成员,或
命名空间 中名为
impl
或detail
之类的命名空间中的命名空间范围自由函数(私有实现部分的约定(,甚至printInOrder
函数内部类中的静态函数。
当然,与其使用递归实现功能,不如只维护显式堆栈并使用迭代解决方案,在这种情况下,您不需要帮助程序函数。
一般建议:通过为宏保留所有大写名称,您可以避免麻烦的无意文本替换,并避免给人以大喊大叫的印象。这是一个常见的C++约定。
相关文章:
- 有根的二进制搜索树.保留与其父级的链接
- 在C++中搜索嵌套多映射值
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 二进制搜索树叶数问题
- 为什么二进制搜索在我的测试中不起作用
- 正在尝试重载二进制搜索树分配运算符
- c++binary_search函数排序数组(流行名称搜索)出现问题
- 向量上的线性搜索
- 如何在动态数组上使用搜索函数
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- cmake:添加要搜索头文件的目录
- 使用C++创建特殊的二叉搜索树
- 在C++的字符串中搜索和删除某些字符
- std::unordered_map 搜索算法是如何实现的?
- 使用不变量来确定二分搜索中的边界条件
- 二叉搜索如何比线性搜索更快?
- 按边长度递归搜索图中所有可行路径
- QStackWidget - 按名称搜索
- 在递归二叉搜索树中搜索
- 二叉搜索树 - PrintInOrder();.