我需要编写一个包含具有 2 个数据结构的数据的节点的模板:一个映射和一个最小堆,其中都有相同的节点,并且每 2 个相同的节点都连接。问题是我需要堆知道例如 heapify 的节点字段,我不知道这样做的正确方法是什么,朋友?节点中的公共字段?在堆内写节点?使用 getter 和 setter?感谢你的帮助。
问问题
110 次
1 回答
1
好吧,一个链表可能是这样布置的:
namespace my_namespace
{
namespace detail
{
template <class T>
struct Node
{
T value;
Node* previous;
Node* next;
//constructors and other things that might help
};
}
template <class T>
class LinkedList
{
private:
detail::Node<T>* head;
public:
//all it does
};
}
没有特别的理由对用户或 LinkedList 类隐藏 Node 结构(将其放入详细命名空间应该绰绰有余):LinkedList 需要它,而 Node 本身对用户几乎没有用处。所有封装都由 LinkedList 来实现:它只是不应该给出它的 head (或任何其他的Node*
)。
于 2010-09-19T11:13:59.850 回答