0

マップと最小ヒープの2つのデータ構造を持つデータを含むノードを含むテンプレートを作成する必要があります。どちらも同じノードを持ち、2つの同じノードごとに接続されています。問題は、たとえばヒープのノードフィールドを知るためにヒープが必要なことです。そうするための正しい方法がわからないのですが、友達ですか?ノードのパブリックフィールド?ヒープ内にノードを書き込みますか?ゲッターとセッターを使用していますか?助けてくれてありがとう。

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    
};
}

Node構造体をユーザーまたはLinkedListクラスから非表示にする特別な理由はありません(詳細な名前空間に配置するだけで十分です)。LinkedListはそれを必要とし、Node自体はユーザーにとってほとんど役に立ちません。すべてのカプセル化は、達成するためにLinkedList次第です。それは、その頭(または他のNode*)を与えるべきではありません。

于 2010-09-19T11:13:59.850 に答える