java 创建方法合并两个有序链表成一个新的有序链表 代码
发布网友
发布时间:2022-04-27 00:04
我来回答
共1个回答
热心网友
时间:2022-06-20 20:45
public static SortedList mergeList(SortedList list1, SortedList list2){
Link current = list2.first;
while(current != null){
list1.insert(current.dData);
current = current.next;
}
return list1;
}追问请问可以遍历两个链表的每个元素直接连接成一个新的有序链表吗?不要用insert方法?谢谢!
追答
public static SortedList mergeList(SortedList list1, SortedList list2){
SortedList list = new SortedList();
Link link = new Link(0l),current1,current2,link2;
current1 = list1.first;
current2 = list2.first;
link2 = link;
while(current1 != null && current2 != null){
if(current1.dData >= current2.dData){
link.next = current2;
current2 = current2.next;
} else {
link.next = current1;
current1 = current1.next;
}
link = link.next;
}
list.first = link2;
list.remove();
return list;
}
合并两个有序链表【递归、迭代】
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 我们可以递归地定义在两个链表上进行合并(merge)操作的结果,如下所示(在不考虑空列表的情况下):也就是说,我们取两个列表...
...和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点...
if ( head1 == NULL)return head2 ;if ( head2 == NULL)return head1 ;Node *head = NULL ;Node *p1 = NULL;Node *p2 = NULL;if ( head1->data < head2->data ){ head = head1 ;p1 = head1->next;p2 = head2 ;} else { head = head2 ;p2 = head2->next ;p1 = ...
...链表的合并,使用java语言编写一程序,将A表和B表归并成一个新的...
import java.util.Collections;import java.util.LinkedList;import java.util.List;public class TestMouse1 {public static void main(String[] agse) {List<Integer> list1 = new LinkedList<Integer>();Collections.addAll(list1, 30, 41, 15, 12, 56, 80);List<Integer> list2 = new Linke...
...个链表的合并,编一程序将A表和B表归并成一个新的递增有序的单链表C...
因为数组b多了个\0
如何将两个有序链表并为一个有序链表?
有两个链表;分别存放的数据是:2 4 7 8 1 5 6 设置两个指针i和j,分别指向两个链表的表头;现在j指向的数据1较小,就把1保存到一个新链表中,用k指向;那j再指向下一个数5,再和i比较;i指向的数2较小,就把2保存到新链表中,放到原来k指向的后面,并用k指向它;i再指向下一个数4;...
数据结构单链表之合并两个已排序的链表
编写一个SortedMerge()函数,该函数接受两个列表,每个列表都按升序排序,然后将这两个列表合并为一个按升序排列的列表。SortedMerge()应该返回新列表。应该通过将前两个列表的节点拼接在一起来制作新列表。例如如果第一个链表a是5->10->15而另一个链表b是2->3->20,那么SortedMerge()应该返回一个...
试编写一个算法,将两个有序线性表合成一个有序线性表...最好是在c++...
L->data[i-1]=x; //在序号为i处放入x L->length++;return 1;} /*归并 增序*/ void merge(sqlist A, sqlist B, sqlist *C){ int m =0, n=0;while (m < A.length && n<B.length)if(A.data[m]<B.data[n]) //将A的data[m]插入C尾部 { insert(C,C->length+1,A....
...两个按元素值有序的线性表A和B,编程实现:将A和B有序归并成一个...
struct LinkList { int data;struct LinkList * next;};void main(){ int a[8]={1,3,4,7,7,8,34,45};int b[9]={1,2,4,7,9,12,33,43,56};LinkList *pa=NULL;LinkList *pb=NULL;LinkList *pc=NULL;LinkList *la=NULL;//la,lb,lc保存链表首地址 LinkList *lb=NULL...
...的有序循环链表,请写出将这两个链表合并为一有序循环链表
int k = 0;int aLen,bLen;aLen = sizeof(A);bLen = sizeof(B);while((i<=aLen)&&(j<=bLen)){ if(A[i] < B[j])else } while( i<=aLen){ c[k] = a[i];k++;i++;} while(j<=bLen){ c[k] = b[j];k++;j++;} } int main(void){ int a[5] = ;int b[5]...
将两个有序线性表合并成一个有序线性表,用C语言 在线急等!!!
if(k&&s[k-1]==a[i])i++;else s[k++]=a[i++];} while(j<n2){ if(k&&s[k-1]==b[j])//有重复元素 j++;else s[k++]=b[j++];} return k;} int main(){ int a[100],b[100],s[200],n1,n2,i,n3;printf("输入第一个数组元素个数:");scanf("%d",&n1);print...