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 回答