我试图做一个包含另一个链接列表的列表,然后我想将它们连接成一个列表。我遇到了一些困难。所以首先我做这个: 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