массивы — несколько реализаций для связанного списка

Я написал простой класс LinkedList. Сначала у меня есть класс Node:

class Node
{
public:
Node* next;
int value;
Node(int val)
{
value = val;
next = NULL;
}

Node(int val, Node* y)
{
value = val;
next = y;
}
}

тогда реализация LinkedList проста, с Node* head член и addNode(int value) функция-член.

Каковы другие способы реализации связанного списка? могли бы дать другие подобные реализации или намекнуть на соответствующий документ?

Спасибо и всего наилучшего.

0

Решение

Стандартная библиотека определяет реализацию двусвязного списка, которую вы можете использовать (см. Вот, например). Я бы посоветовал использовать это, если у вас нет очень веских причин не делать этого.

2

Другие решения

Boost имеет несколько реализаций:
http://www.boost.org/doc/libs/1_51_0/doc/html/intrusive/slist.html
http://www.boost.org/doc/libs/1_51_0/doc/html/intrusive/list.html

0

  1. deleteNode
  2. findNode
  3. Мэйб создай итератор.

Также лучше использовать списки инициализации в конструкторах и частных членах данных. NULL для C, используйте 0 вместо.

то есть

class Node
{
private:
Node* next;
int value;
public:

Node(int val) : next(0), value(val) {}
Node(int val, Node *n) : next(n), value(val) {}
int getVale() { return value}
};
0
По вопросам рекламы [email protected]