我試圖做一個包含另一個鏈接列表的列表,然後我想將它們連接成一個列表。我遇到了一些困難。所以首先我做這個: typedef List DList; - 它使一種鏈接列表; 然後,例如,我做DList A和B.我插入一些數字,如1,2,3 ...在他們兩個; 後來我加入他們的主要鏈表是這樣的:另一個鏈接列表中的鏈接列表
List<DList> L;
L.Add_Node(A);
L.Add_Node(B);
,一切似乎要被罰款,在這個階段的程序。在此之後,我試圖做一個函數來連接分離鏈表。我將創建一個新的列表新列表其中值將被存儲。我的問題出現了。我不知道如何編寫這個函數。 我做了這樣的事情:首先我做一個函數,它將循環L列表中的節點(有兩個小列表)。然後我去我的連接功能。你可以在下面的代碼中看到它們:
template<class T>
void Start(List<T> L, List<T> NewList)
{
List<T> *temp = L.start_ptr; //I get the position of the first element;
while(temp)
{
NewList = Concat(NewList, temp->data);
temp = temp->next;
}
}
template<class T>
List Concat(List<T> L1, List<T> L2)
{
List<T> *temp1, *temp2;
List<T> NewList;
temp1 = L1.start_ptr;
temp2 = L2.start_ptr;
while(temp1)
{
NewList.Add_Node(temp1->data);
temp1 = temp1->next;
}
while(temp2)
{
NewList.Add_Node(temp2->data);
temp2 = temp2->next;
}
return NewList;
}
這些是我的功能。也許他們是完全錯誤的......編譯器給我錯誤,成員start_ptr,數據和下一個是私人的(這是真的)。它給了我更多的錯誤......類似這樣的東西寫在我正在學習的書中,但它在那裏非常複雜......如果你不想花時間幫助我,我會很感激如果你給我一個很好的來源,我可以從中閱讀更多關於這種類型的列表。
您需要一個參考'List&NewList'作爲參數,否則當函數體超出作用域時,串聯將最終被丟棄。 –
ondrejdee
那我得到的班級成員的錯誤是什麼(它說他們是私人的)。 –
你使用std :: list嗎?或者是列出你自己的? – doctorlove