c++ - 二叉搜索树

标签 c++ recursion binary-tree implementation

我有一个关于 C++ 中二叉搜索树实现的问题。 下面是问题

实现一个存储整数的简单(非模板化)BST。提供如下操作:Insert、Remove、inOrder遍历、preOrder遍历、postOrder遍历。

使用递归例程来处理树。

处理节点只涉及打印出节点的内容,在本例中是存储在节点中的整数。

数据应来自测试文件。主程序应打开数据文件并插入到树中,并演示其他树操作。

本练习的目的是证明您理解 BST。没有必要过度使用它并进行不需要的操作。

到目前为止我只创建了头文件。谁能看看我是否正朝着正确的方向前进并提出建议?

using namespace std;
#ifndef BSTNODE_H
#define BSTNODE_H
class BSTNode
{
    private:
    //Defines the 'node' structure
    struct tree_node 
    {
     tree_node *left;   // left subtree has smaller elements
     tree_node *right;  // right subtree has larger elements
     int m_data;
    };
    //root * r;
    public:
        //The Constructor
        BSTNode();
        //The Destructor
       ~BSTNode();
       //Inserts a value into a BST, public function
        void insert(const m_data & d);
        //Removes a value from a BST, public function
        void remove(const m_data & d);
        //isEmpty function, public function
        bool isEmpty();
        BSTNode getData();
        void inOrder(const m_data & d);
        void preOrder(const m_data & d);
        void postOrder(const m_data & d);
};
#endif

接下来我必须创建 BSTNode.cpp 文件。感谢您通过邮件回复 jediknight80n@hotmail.com 提前致谢。

最佳答案

你似乎忘记了 typedef 你在各种方法中使用的类型 m_data,我不明白你为什么想要一个单独的 tree_node 结构(而不​​是使用类本身?),也不知道为什么 getData 应该返回 BSTNode 而不是 int

关于c++ - 二叉搜索树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/876229/

相关文章:

c++ - 如何在不使用 pthread_join() 的情况下同步线程?

c++ - 应该接受不同输入参数的纯虚函数——应该如何实现?

c++ - 非递归后序图遍历?

c++ - 无需额外存储的二叉搜索树迭代前序遍历

c++ - 在 Visual C++ 中使用 dllimport

java - 从以下树状数据结构中获取所有可能的组合

c++ - 由于递归删除,智能指针炸毁堆栈

.net - 显示二元决策树的工具

algorithm - 从中序和前序重建二叉树

C++:如何分配和填充通过引用传递的结构的动态数组?