我正在尝试创建一个包含另一个链接列表的列表,然后我想将它们连接到一个列表中。我对此有一些困难。所以首先我做这个: typedef List DList; - 它制作了一种链表;然后例如我制作 DList A 和 B。我在它们两个中都插入了一些数字,例如 1,2,3...;然后我将它们添加到主链表中,如下所示:
List<DList> L;
L.Add_Node(A);
L.Add_Node(B);
在程序的这个阶段,一切似乎都很好。在此之后,我试图创建一个函数来连接单独的链接列表。我创建了一个新的List NewList来存储值。我的问题来了。我不知道如何编写函数。我做了这样的事情:首先我做了一个函数,它将循环 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、data 和 next 是私有的(这是真的)。它给了我更多的错误。我正在学习的书中写了这样的内容,但是那里很复杂...如果您不想花时间帮助我,我什至会感激不尽如果你给我一个很好的来源,我可以从中阅读更多关于这种类型的列表。