2010-12-07 191 views
3

我必須編寫一個使用鏈接列表的C程序。我創建了一個列表並添加了元素到列表中。但我不知道如何打印列表中的所有元素。該列表是一個字符串列表。我想我會以某種方式增加整個列表,打印每一個字符串,但我無法找到一種方法來做到這一點。C,打印鏈接列表字符串

短片:如何打印linked list

+3

聽起來像你真正的問題是「我如何通過鏈表迭代」 - 是準確的? – Cascabel 2010-12-07 02:55:36

+3

Jefromi的問題的後續工作分爲兩部分:1)您可以打印第一個節點的內容,2)您是否可以獲得第二個節點的鏈接? – dmckee 2010-12-07 02:57:33

回答

10

有沒有愚蠢的問題。下面是一些僞代碼,讓您開始:

def printAll (node): 
    while node is not null: 
     print node->payload 
     node = node->next 

printAll (head) 

這是真的,剛開始的頭節點,打印出的有效載荷,並移動到列表中的下一個節點。

一旦下一個節點是列表的結尾,停止。


嗯,事實上,有可能是但是這是不是其中之一:-)

0

我不太清楚,如果這是你在找什麼,但通常你在你的DS中存儲一個pHead(這是一個指向第一個元素的指針),並實現一個函數來檢索字符串節點的下一個地址。

你這樣做直到下一個地址是NULL(這意味着你已經到達你的尾巴)。

3

您可以使用指針遍歷鏈接列表。僞代碼:

tempPointer = head 

while(tempPointer not null) { 
    print tempPointer->value; 
    tempPointer = tempPointer->next; 
} 
1

僞代碼:

struct list 
{ 
    type value; 
    struct list* pNext; 
} 

void function() 
{ 
    struct list L; 
    // .. element to L 

    // Iterate each node and print 
    struct list* node = &L; 

    do 
    { 
    print(node->value) 
    node = node->next; 
    } 
    while(node != NULL) 
}