1. 程式人生 > >合併兩個單鏈表(連結串列方式)

合併兩個單鏈表(連結串列方式)

假設頭指標為La、Lb單鏈表分別為線性表LA、LB的儲存結構,現在要合併La、Lb得到單鏈表Lc

void MergeList_L(LinkList La, LinkList Lb, LinkList Lc){
    //已知La、Lb的元素按值非遞減排列
    //歸併La、Lb得到單鏈表Lc,Lc的元素也是按值非遞減排列的
    LinkList pa,pb,pc;
    pa = La->next;
    pb = Lb->next;
    Lc = pc = La;//用La的頭結點作為Lc的頭結點
    while(La && Lb){
        
if(La->data<=Lb->data){ pc->next = pa; pc = pa; pa = pa->next; } else{ pc->next = pb; pc = pb; pb = pb->next; } } pc->next = pa?pa:pb;//插入剩餘段 free(Lb); }