如何将两个有序单链表合并为一个有序单链表
public static LinkedList<int> MergeLink(LinkedList<int> link1, LinkedList<int> link2)
{
LinkedListNode<int> currentNodeOfLink1 = link1.First;
LinkedListNode<int> currentNodeOfLink2 = link2.First;
while (currentNodeOfLink2.Next != null)
{
if (currentNodeOfLink1.Value >= currentNodeOfLink2.Value)
{
if (currentNodeOfLink1.Next != null)
{
currentNodeOfLink1 = currentNodeOfLink1.Next;
}
else
{
link1.AddAfter(currentNodeOfLink1, currentNodeOfLink2);
while (currentNodeOfLink2.Next != null)
{
currentNodeOfLink2 = currentNodeOfLink2.Next;
}
}
}
else
{
link1.AddBefore(currentNodeOfLink1, currentNodeOfLink2);
while (currentNodeOfLink2.Next != null)
{
currentNodeOfLink2 = currentNodeOfLink2.Next;
}
}
}
return link1;
}
分享到:
相关推荐
实现两个有序单链表的合并。要求:随机创建两个单链表,实现单链表的排序,再对两个有序单链表进行合并。
2、将建立的两个链表合并为一个新的有序的单链表;3、输出显示已合并好的有序的单链表。【输入形式】输入表1的元素个数,表1的元素值(逆序),同表1,输入表2的数据。【输出形式】输出合并后的元素值。【样例输入】...
将两个有序的链表合并为一个有序链表,链表的大小是可变的
求表长以及有序单链表的合并算法的实现 ...请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并计算表长。要求利用原来两个单链表的结点存放归并后的单链表。 [基本要求]用链式存储结构实现存储
两个递增有序的单链表合并成一个递减有序的.cpp
合并有序单链表
实现有序单链表的定义,建立,遍历,插入,删除以及两个有序单链表的合并; 本资源包括需求分析,概要设计,详细设计,调试分析,测试结果和源代码
两个无序的单链表合并成一个有序的单链表,链表长度及数据由用户输入。
设ha和hb分别是指向两个带头结点的非递减...要求设计一个算法,将这两个有序链表合并成一个非递增(递减)有序的单链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其它存储空间。表中允许有重复的数据。
通过冒泡排序进行单链表的有序插入,并将这两个有序单链表合并成一个有序单链表,使用两个单链表的原有空间进行合并,将生成的有序单链表输出显示
构造两个带有表头结点的有序单链表La、Lb,编写程序实现将La、Lb合并成一个有序单链表Lc。 合并思想是:程序需要3个指针:pa、pb、pc,其中pa,pb分别指向La表与Lb表中当前待比较插入的结点,pc 指向Lc表中当前最后...
设ha和hb分别是两个带头结点的非递减有序单链表的表头指针,试设计一个算法,将这两个有序链表合并成一个非递减有序的单链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间。表中允许有重复...
实现了对两个有序单链表的求交和合并操作,且合并操作中相同的数据被输出两次
1.从键盘输入顺序任意的5个整数,按有序插入的要求生成第一个有序单链表,将该链表输出显示。...3.将这两个有序单链表合并成一个有序单链表,要求使用两个单链表的原有空间进行合并,将生成的有序单链表输出显示。
将这两个有序单链表合并成一个有序单链表,要求使用两个单链表的原有空间进行 合并,将生成的有序单链表输出显示。 2. 程序中使用的数据结构及符号说明 class Node 表示结点类 class LinkList 表示单链表类 LinkList...
实验二 单链表实验 一、实验目的 ...请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并计算表长。要求利用原来两个单链表的结点存放归并后的单链表。 [基本要求]用链式存储结构实现存储
单链表的查找、插入与删除。设计算法,实现线性结构上的单链表的产生以及元素的查找、插入与删除。具体实现要求: 1. 从键盘输入10个整数,...6. (★)已知两个单链表有序,将此两个单链表合并成一个新的有序单链表。
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 解题思路 解法一:迭代法 复杂度分析: 时间复杂度:O(n ...
合并两个链表:设A与B分别为两个带有头结点的有序循环链表(所谓有序是指链接点按数据域值大小链接,本题不妨设按数据域值从小到大排列),list1和list2...请写出将这两个链表合并为一个带头结点的有序循环链表的算法。
vc6.0 c++ 数据结构 链表的合并