2012-09-26 101 views
0

我写了一个简单的LinkedList类。我首先有一个Node类:一些实施链表 - C++

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

您可以查看[std :: forward_list](http://en.cppreference.com/w/cpp/container/forward_list)界面以获取灵感。 Youy可能需要插入的前,后,中间,再加上清除。你还应该考虑如何复制列表对象。 – juanchopanza

+0

在你知道你确实需要它之前,不要执行任何操作。否则,你陷入了程序员可能陷入的最大陷阱。 – tenfour

回答

2

标准库定义了一个双向链表的实现,你可以使用(见here,例如)。除非你有一个非常好的理由,否则我会建议你使用它。

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} 
};