链表节点类中的链接数

时间:2012-08-20 13:51:37

标签: c++ pointers linked-list

为链表创建节点时,它可能如下所示:

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的最佳方法是什么?

1 个答案:

答案 0 :(得分:6)

怎么样

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

并将其用作:

node<int, 2> doubleLinkedListNode;
node<int, 1> singleLinkedListNode;
然而,我认为它太复杂了,应该像原来一样保留它。更干净。