2013-08-25 46 views
0

鏈表我想知道如何在C創建一個鏈接列表,其中每個節點有:如何創建在純C

  • 任意長度的字符串。
  • 整數列表(整數來存儲將節點之間變化的總數量,所以我不能使用整數數組)。

在此先感謝。

+3

你真的無法找到這樣的例子與谷歌?我看到... – redFIVE

+2

並在第8天..他創建了[Google](http://www.google.com)。 – WhozCraig

+0

我知道如何創建單鏈表,其中每個節點都有任何長度的「字符串」。但我不知道如何在外部列表的每個節點內實現數字列表。 – Transfinito

回答

1

我不會寫代碼的你,但這裏有一些步驟,讓你開始。這是做到這一點的一種可能方式;根據您的實際需要,還有其他人可能會更好地工作。

首先,確定你的數據結構。你需要兩個。第一個是整數鏈表。第二個是包含字符串和列表的鏈接列表。這裏是後者中的節點可能是這樣的:

typedef struct node { 
    char* someStr; 
    LIST* integerList; 
    struct node* next; 
} NODE; 

然後,有一個函數可以創建整數鏈表。有另一個函數爲字符串分配內存並返回char*

具有第三個函數,它將NODE的鏈表,字符串和int s的鏈表作爲參數。該函數將一個新NODE到列表中,設定指向的int鏈表和字符串。

至少開始與此有關。如果你遇到任何功能,你可以詢問關於它們的具體問題。但是,你不能只是發佈問題,並期望有人爲你寫代碼,而不會說你已經嘗試過什麼,以及你被困在哪裏。

+2

+1對於「我不會爲你寫代碼」。編程通過實踐來學習。 – andy256

0

從我從理解:

整數列表(整數來存儲將節點之間變化的總數量,所以我不能使用整數數組)。

看來你要對數字的動態數組,你可以使用This CCAN Module(這只是一個標題,只是刪除的config.h包容和你要善於去)

NB:數字列表似乎是一個壞主意,所以動態數組可能是最有效的方法。

NB2:不難編寫自己的動態數組,只是看看it's algorithm

最簡單的用法是一樣的東西:

#include "darray.h" 

struct node { 
    char *string; 
    darray(int) numbers; 
}; 

inline void push_number(struct node *node, int number) { 
    darray_push(node->numbers, number); 
} 
+0

我認爲他的意思是沒有「純C」的第三方庫。 – Kunal

+0

@Kunal這就是爲什麼我寫了第二NB。 – 2013-08-26 11:52:22