2012-09-26 79 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} 
};