[英]How do I merge two linked lists in C++?
昨晚我问了一个有关如何对C ++中的双链表进行sort()
的问题。 我设法使其正常工作,但现在我想合并两个列表,但无法使其正常工作。 我没有太多代码,对不起。 我尝试的一切都完全没有道理。 我想知道是否有人可以通过我要提供的信息给我一些提示,从哪里开始或如何做。
这是我刚开始的时候:
void next() { if (curr != tail) curr = curr->next; }
我相信我只需要这些。
我在网上看了一些样本,但对我来说没有任何意义。 看来与我现在所拥有的完全不同。 显然,这比执行排序功能要容易得多,我几乎没有遇到任何麻烦。
任何解释/提示将不胜感激! 对于缺乏代码,我再次感到抱歉,我只是不知道从哪里开始。
实际上,您可以通过多种方式执行此操作
看来您正在尝试不执行。 3这里。
在这种情况下,您可以
但是,这将破坏原始列表。 我认为最好将它们复制到第三张列表中。
for_each(auto x in list2name)
{
list1name.push_back(x);
}
或者如果您使用的是C++ 11
for(auto x : list2name)
{
list1name.push_back(x);
}
如果您已将std :: list用作链接列表,则可以始终使用现有的merge()函数http://www.cplusplus.com/reference/stl/list/
如果这是您自己实现的,则只需获得列表之一的尾部,然后使用类似以下的方法:
tail = list_1.get_tail();
tail.set_next(list_2.get_head())
基本上获取列表1中的最后一个条目,然后将下一个元素设置为列表2的第一个元素。
我仍然对您的追求感到困惑,但这是我能想到的最基本的方法。 再说一次,我可能会完全离开。 祝好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.