2016-10-14 75 views
0

我正在創建一個跳過列表數據結構。這裏是我迄今爲止的Node的代碼快照。在C++中實現跳過列表節點

#define MAX_HEIGHT = 20; 
    struct Node { 
     int i; 
     Node *nodes[20]; 
    } 

據我所知,如果我在這種情況下使用矢量,它會好得多,因爲你可以動態地改變它的大小。我想知道如果我想使用數組,我會去哪裏。

我是C++的新手,所以我想知道是否可以在稍後的實例中分配數組的大小。說,我想添加另一個節點,只有大小2指針數組。

+0

您是否聽說過在堆中動態分配內存的[new operator](http://www.cplusplus.com/reference/new/operator%20new/)? – PRP

+0

嗯,我有。在文檔中的示例中。根據我的理解,它正在創建新的MyClass結構。但是我想知道是否有可能創建一個節點大小爲10而不是20的新節點。 – h94

+0

要爲您的類「Node」創建一個動態大小數組,請執行以下操作:Node * node_list = new Node [size];'其中'size'是任何可能是10,20或其他變量的變量。 __的優點是'size'是在運行時確定的,內存是在堆中分配的.__ – PRP

回答

0

您可以通過高度的節點的構造函數創建,在構造函數中你只是動態分配的Node指針數組,不要忘記釋放的析構函數記憶:

struct Node { 
    int i; 
    int height; 
    Node* *nodes; 
    Node(int h) { 
     nodes = new Node*[h]; 
     height = h; 
    } 
    ~Node() { 
     delete [] nodes; 
    } 
};