マップと最小ヒープの2つのデータ構造を持つデータを含むノードを含むテンプレートを作成する必要があります。どちらも同じノードを持ち、2つの同じノードごとに接続されています。問題は、たとえばヒープのノードフィールドを知るためにヒープが必要なことです。そうするための正しい方法がわからないのですが、友達ですか?ノードのパブリックフィールド?ヒープ内にノードを書き込みますか?ゲッターとセッターを使用していますか?助けてくれてありがとう。
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
};
}
Node構造体をユーザーまたはLinkedListクラスから非表示にする特別な理由はありません(詳細な名前空間に配置するだけで十分です)。LinkedListはそれを必要とし、Node自体はユーザーにとってほとんど役に立ちません。すべてのカプセル化は、達成するためにLinkedList次第です。それは、その頭(または他のNode*
)を与えるべきではありません。
于 2010-09-19T11:13:59.850 に答える