【发布时间】:2014-02-12 11:55:19
【问题描述】:
我的作业有一个问题,我需要用 C++ 做一个项目,我需要使用面向对象编程,这是一个带有二叉搜索树的词汇表,我完成了。但是我使用了一个结构......我打破了OOP规则?如果是,如何转换继承类中的结构?
template <typename T>
struct BinaryNode
{
T key;
BinaryNode<T>* left;
BinaryNode<T>* right;
BinaryNode<T>* parent;
};
template <typename T>
class BinarySearchTree
{
private:
BinaryNode<T>* root;
BinaryNode<T>* newNode(T key);
public:
BinarySearchTree();
~BinarySearchTree();
void insert(T key);
BinaryNode<T>* search(T key);
void distance(T key);
void inorderTreeWalk();
void insert(BinaryNode<T>** node, T key);
BinaryNode<T>* search(BinaryNode<T>* node, T key);
void distance(BinaryNode<T>* node, T key);
void inorderTreeWalk(BinaryNode<T>* node);
BinaryNode<T>* remove(BinaryNode<T>* node);
BinaryNode<T>* minimum(BinaryNode<T>* node);
BinaryNode<T>* maximum(BinaryNode<T>* node);
BinaryNode<T>* successor(BinaryNode<T>* node);
bool contains(T key);
BinaryNode<T>* getRoot();
};
【问题讨论】:
-
你的作业真的需要你自己写二叉树吗?因为
std::set应该适用于大多数用途。
标签: c++ class oop templates struct