我有一个关于 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/