为链表创建节点时,它可能如下所示:
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的最佳方法是什么?
答案 0 :(得分:6)
怎么样
template <class T, int N>
class node {
T data;
node* links[N];
};
并将其用作:
node<int, 2> doubleLinkedListNode;
node<int, 1> singleLinkedListNode;
然而,我认为它太复杂了,应该像原来一样保留它。更干净。