C 02 線性結構1 兩個有序鍊錶序列的合併

2021-08-16 22:00:36 字數 2381 閱讀 8093

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

函式介面定義:

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

5 2 4 6 8 10

輸出樣例:
1 2 3 4 5 6 8 10

null

null

解析:
其中list結構定義如下:

typedef struct node *ptrtonode;

struct node ;

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

typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別(int,char等)和自定義的資料型別(struct等)。

typedef struct node *ptrtonode就表示用ptrtonode代替struct node *也就是本來要定義變數struct node * p;可以寫成ptrtonode p;typedef ptrtonode list;就是用list代替ptrtonode

其實上邊那段**可以寫為:

struct node ;

//然後題目中宣告時候用的list l也可以寫為node *l

答案:
list merge( list l1, list l2 )

else

re=re->next;

}if(p)

else

l1->next=

null;

l2->next=

null;

return l;

}

完整**:
#include

#include

typedef int elementtype;

typedef struct node *ptrtonode;

struct node ;

typedef ptrtonode list;

list read();

void print( list l );

list merge( list l1, list l2 );

int main()

list read()

return head;

}void print( list l )

while(p)

printf("\n");

} list merge( list l1, list l2 )

else

re=re->next;

}if(p)

else

l1->next=

null;

l2->next=

null;

return l;

}

02 線性結構1 兩個有序鍊錶序列的合併

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

02 線性結構1 兩個有序鍊錶序列的合併

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

02 線性結構1 兩個有序鍊錶序列的合併

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