链式有序表的合并
创建L3,以次遍历L1,L2,比较其中元素的大小,将他们此存放在L3中。
List Merge( List L1, List L2 ){
List L3=(List)malloc(sizeof(struct Node));
L3->Next=NULL;
List p1=L1->Next;
List p2=L2->Next;
List p3=L3;
while(p1!=NULL&&p2!=NULL){
if(p1->Data<p2->Data){
p3->Next=p1;
p1=p1->Next;
}
else{
p3->Next=p2;
p2=p2->Next;
}
p3=p3->Next;
}
p3->Next=NULL;
//将非空链表剩余段插入p3所指节点之后
if(p1!=NULL){
p3->Next=p1;
}
if(p2!=NULL){
p3->Next=p2;
}
L1->Next=NULL;
L2->Next=NULL;
return L3;
浙公网安备 33010602011771号