链表的几种实现 - C++

Several implementation for a linked list - C++

本文关键字:几种 实现 C++ 链表      更新时间:2023-10-16

我写了一个简单的LinkedList类。我首先有一个节点类:

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)成员函数。

实现链表的其他方法是什么? 可以给出其他这样的实现或暗示相关文档吗?

谢谢和问候。

标准库定义了您可以使用的双向链表实现(例如,请参阅此处)。我建议使用它,除非你有很好的理由不这样做。

Boost 有一些实现:http://www.boost.org/doc/libs/1_51_0/doc/html/intrusive/slist.htmlhttp://www.boost.org/doc/libs/1_51_0/doc/html/intrusive/list.html

  1. deleteNode
  2. findNode
  3. Mabe 创建一个迭代器。

最好在构造函数和私有数据成员中使用初始化列表。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}
};