0

我需要编写一个包含具有 2 个数据结构的数据的节点的模板:一个映射和一个最小堆,其中都有相同的节点,并且每 2 个相同的节点都连接。问题是我需要堆知道例如 heapify 的节点字段,我不知道这样做的正确方法是什么,朋友?节点中的公共字段?在堆内写节点?使用 getter 和 setter?感谢你的帮助。

4

1 回答 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 回答