C++ 从链表数组中获取并集
我有一个链表的内存地址数组,我想得到两个链表的并集,并用新链表更新它所在的索引 如果我这样做并合并两个链表,那么数组中已经存在的链表会发生什么情况。如果我遍历它,我会得到更新的链表吗?我是否需要创建一个新的链表并在两个索引处分配它?如果索引相当于节点的数据值,那么每次合并两个链表时,我都需要遍历链表。有没有一种方法可以在不遍历链表的情况下在固定时间内完成此操作 例如:C++ 从链表数组中获取并集,c++,arrays,linked-list,C++,Arrays,Linked List,我有一个链表的内存地址数组,我想得到两个链表的并集,并用新链表更新它所在的索引 如果我这样做并合并两个链表,那么数组中已经存在的链表会发生什么情况。如果我遍历它,我会得到更新的链表吗?我是否需要创建一个新的链表并在两个索引处分配它?如果索引相当于节点的数据值,那么每次合并两个链表时,我都需要遍历链表。有没有一种方法可以在不遍历链表的情况下在固定时间内完成此操作 例如: list 1: data:1 -> data:3 -> data:5 list 2: data:2 -> d
list 1:
data:1 -> data:3 -> data:5
list 2:
data:2 -> data: 4 - > data: 6
array:
[list1, list2, list1, list2, list1, list2]
after union:
union list:
data: 1->data:3->data:5->data:2->data:4->data:6
array after union:
[union list, union list, union list, union list, union list, union list]
您使用的是
std::list
还是std::forward\u list
?若否,原因为何?如果是,那么应该已经有函数可以完成这项工作,或者是std::list
成员函数,或者是一组STL算法函数。以前不应该有两个数组吗?换句话说,一个数组表示“列表1”,另一个数组表示“列表2”,我正在处理我创建的一个链表,并且我正在使用一个数组表示两个链表。@Exalino-hmm。。这对我来说似乎很奇怪-你能解释一下数组的用法吗?例如,你为什么拥有它以及如何使用它。无论如何,如果你有一个尾部指针,你可以在固定时间内加入列表。如果需要对数组元素重新排序,则不能在固定时间内。@Exalino请提供一个。