1. 程式人生 > 其它 >浙大版《資料結構(第2版)》題目集習題2.5 兩個有序連結串列序列的合併 (15分)

浙大版《資料結構(第2版)》題目集習題2.5 兩個有序連結串列序列的合併 (15分)

技術標籤:浙大版《資料結構(第2版)》題目集

遞迴版:

List digui(List L1,List L2)
{
    if(L1==NULL) return L2;
    if(L2==NULL) return L1;
    if(L1->Data<L2->Data) 
    {
        L1->Next=digui(L1->Next,L2);
        return L1;
    }
    else
    {
        L2->Next=digui(L1,L2->Next);
        return
L2; } } List Merge( List L1, List L2 ) { List L=(List)malloc(sizeof(List)); L->Next=digui(L1->Next,L2->Next); L1->Next=L2->Next=0; return L; }

非遞迴:

List Merge( List L1, List L2 )
{
    List L=(List)malloc(sizeof(List));
    List Lo=L;
    List L3=L1->Next,L4=L2->
Next; while(L3&&L4) { if(L3->Data<L4->Data) { Lo->Next=L3; L3=L3->Next; } else { Lo->Next=L4; L4=L4->Next; } Lo=Lo->Next; } if(!L3) Lo->Next=
L4; if(!L4) Lo->Next=L3; L1->Next=0; L2->Next=0; return L; }