習題2 5 兩個有序鍊錶序列的合併 15分

2022-08-09 13:15:21 字數 1239 閱讀 9963

本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。

list merge( list l1, list l2 );

其中list結構定義如下:

typedef struct node *ptrtonode;

struct node ;

typedef ptrtonode list; /* 定義單鏈表型別 */

l1l2是給定的帶頭結點的單鏈表,其結點儲存的資料是遞增有序的;函式merge要將l1l2合併為乙個非遞減的整數序列。應直接使用原序列中的結點,返回歸併後的帶頭結點的煉表頭指標。

#include #include typedef int elementtype;

typedef struct node *ptrtonode;

struct node ;

typedef ptrtonode list;

list read(); /* 細節在此不表 */

void print( list l ); /* 細節在此不表;空煉表將輸出null */

list merge( list l1, list l2 );

int main()

/* 你的**將被嵌在這裡 */

3

1 3 5

52 4 6 8 10

1 2 3 4 5 6 8 10 

null

null

list merge( list l1, list l2 )

else

if(!p2&&p1)//表2空,表1不空,直接返回表1

else//兩個都不空

else

}//跳出while迴圈時說明至少右乙個表是空的

if(p2)//p1空了,將p2剩下的全連上

if(p1)//p2空了

}l1->next = null;//

必須加上這2句,否則錯誤

l2->next =null;

return

l;

}

PTA 習題2 5 兩個有序鍊錶序列的合併

習題2.5 兩個有序鍊錶序列的合併 題目要求 本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。介面 list merge list l1,list l2 l1和l2是給定的帶頭結點的單鏈表,其結點儲存的資料是遞增有序的 函式merge要將l1和l2合併為乙個非遞減的整數...

習題2 5 兩個有序鍊錶序列的合併 15分

本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。list merge list l1,list l2 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型...

合併兩個有序鍊錶序列

本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。list merge list l1,list l2 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型...