5 51 兩個有序鍊錶序列的合併 20分

2021-07-25 03:05:38 字數 1083 閱讀 5495

5-51 兩個有序鍊錶序列的合併   (20分)

已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的並集新非降序鍊錶s3。

輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用-1−1

表示序列的結尾(-1−1

不屬於這個序列)。數字用空格間隔。

在一行中輸出合併後新的非降序鍊錶,數字間用空格分開,結尾不能有多餘空格;若新鍊錶為空,輸出null

1 3 5 -1

2 4 6 8 10 -1

1 2 3 4 5 6 8 10
#include#includestruct node;

typedef struct node * pnode;

pnode read()/*讀入資料*/

}while(number != -1);

t = phead;

phead = t->next;

free(t);/*刪除臨時頭結點*/

return phead;

}void attach(int number,pnode * prear)

pnode combination(pnode p1,pnode p2)/*將p1,p2按非降序乙個乙個接上*/

else if(p1->num == p2->num)/*當數相等時,要將p1,p2的數都接入,非降序列每項不一定嚴格大於它的前一項,例如 1,1,1*/

else

}while(p1)

while(p2)

t = p;

p = p->next;

free(t);

return p;

}void print(pnode p)/*輸出*/

int flag = 0;

while(p)

else

p = p->next;

} printf("\n");

}int main(void)

5 51 兩個有序鍊錶序列的合併(20分)

已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的並集新非降序鍊錶s3。輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用 1 1 表示序列的結尾 1 1 不屬於這個序列 數字用空格間隔。在一行中輸出合併後新的非降序鍊錶,數字間用空格分開,結尾不能有多餘空格 若新鍊錶為空,輸出n...

5 51 兩個有序鍊錶序列的合併 20分

5 51 兩個有序鍊錶序列的合併 20分 已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的並集新非降序鍊錶s3。輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用 1 1 表示序列的結尾 1 1 不屬於這個序列 數字用空格間隔。在一行中輸出合併後新的非降序鍊錶,數字間用空格分開...

合併兩個有序鍊錶序列

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