【发布时间】:2013-07-04 09:03:47
【问题描述】:
假设我们有一个由 2 个类组成的 RedBlack-Tree 实现:
-
Tree- 保存指向树的Node *root的指针并定义树上的所有操作(Insert、Delete等) -
Node- 一个数据存储,它保存指向Node *parent、Node *left、Node *right节点和std::string key的指针。
Tree::Insert() 具有以下实现:
void Tree::Insert(const std::string &key)
{
Node *z = new Node(key);
// adding node logic
}
现在的任务:每个节点都必须存储它的创建时间。
限制:基树实现应尽可能少地修改,并应包含特定扩展的详细信息(因此它应该对创建时间属性一无所知)。
我的想法:扩展 NodeWithTime : Node 并添加 unsigned int creation_time 属性。
我陷入了困境:我们现在如何实例化节点?
有什么建议吗?
PS:这既不是家庭作业也不是工作任务——我只是在学习 c++ 和数据结构。
【问题讨论】:
-
“扩展”是 Java 术语。在 C++ 中,您从一个类派生。
标签: c++ algorithm tree application-design red-black-tree