2012-11-16 76 views

回答

0

據推測,您的鏈表具有典型的鏈表操作。這些包括獲取引用第一個元素的迭代器,遞增迭代器以引用下一個元素,檢查迭代器是否已經跑出列表的末尾等等。算法如下:

  1. 設置一個迭代器來引用鏈表中的第一個元素。

  2. 如果迭代器已經跑出鏈表的末尾,請停止。

  3. 打印迭代器引用的元素。

  4. 遞增迭代器。

  5. 轉到步驟2.

如果你不知道該怎麼做這些具體步驟,那麼你不知道如何使用您有特別的鏈接類。爲了幫助你,我們需要看到它的代碼(如果它是一個現成的類,那麼它的鏈接就是它的文檔)。

一個典型的C++實現會是這個樣子:

void LinkedList::print(ostream& stream) const 
{ 
     LinkedListElement* ptr = head; // this is my step 1 
     while (ptr != NULL)   // this is my step 2 
     { 
      stream << *ptr;   // this is my step 3 
      ptr = ptr->getNext();  // this is my step 4 
     } // step 5 happens here because this is a loop 
} 
0

您可以使用此:

void print(node* n) { 
    cout << n -> value << endl; 
    if(n -> next) print(n -> next); 
} 

,並調用它像這樣:

int main() { 
    linked_list l; 
    ... 
    print(l -> head); 
    return 0; 
} 
+0

好的。一個問題是函數在.h文件中聲明瞭某種特定的方式,我無法編輯,所以我到目前爲止是:void Set :: display(ostream&Out)const {/*...*/} – IrfanM

+0

這是一個什麼問題? –

+0

@DavidSchwartz我不知道如何將其轉換爲具有類型爲ostream的參數/參數的函數。 – IrfanM

0

希望這有助於!

struct Node 
    { 
     int data; 
     struct Node *next; 
    } 

void Print(Node *head) 
{ 
    Node *a =head; 
    while(a!=NULL){ 
     cout<<a->data<<endl; 
     a = a->next; 
    } 
}