0

リンクされたリストのノードを作成すると、次のようになります。

template <class T>
class node {
 T data;
 node* next;
}

二重にリンクされたリストの場合、次のようになります。

template <class T>
class node {
 T data;
 node* next;
 node* prev;
}

BST の場合は次のようになります。

template <class T>
class node {
 T data;
 node* left_child;
 node* right_child;
}

これはすべて、次の形式で一般化できます。

template <class T>
class node {
 T data;
 node* links[N]; // N = 1 for linked list, N = 2 for tree or doubly linked list, etc...
}

STLベクトルを使用せずにクラスctorでNを指定する最良の方法は何ですか?

4

1 に答える 1

6

どうですか

template <class T, int N>
class node {
 T data;
 node* links[N];
};

そしてそれを次のように使用します:

node<int, 2> doubleLinkedListNode;
node<int, 1> singleLinkedListNode;

しかし、それは複雑すぎると思うので、元の状態のままにしておく必要があります。ずっときれい。

于 2012-08-20T13:53:38.357 に答える