單鏈表的歸併

2021-08-19 16:07:57 字數 775 閱讀 4070

假設兩個按元素值非遞減有序排列的線性表a和b

,均以單鏈表作為儲存結構,試編寫程式,將a表和b

表歸併成乙個按元素值非遞增有序排列的線性表c

,並要求利用原表(即

a表和b表的)結點空間存放表c

。第一行輸入兩個正整數m,n(m,n<=100)

,用空格分開,表示線性表a和

b中元素個數,其後兩行分別輸入單鏈表a和

b。輸出單鏈表c。

5 51 3 7 12 16

2 6 7 13 20

20 16 13 12 7 7 6 3 2 1

#include#includetypedef int datatype;

typedef struct node

listnode,*linklist;

linklist creatlist(int a,int n)//建立單鏈表

q->next=null;

return head;

}void printlist(linklist head)//輸出單鏈表

linklist listadd(linklist la,linklist lb)//兩鍊錶合併

else if(pa->datadata)

if(pa==null&&pb!=null)

}if(pa!=null&&pb==null)

}} q->next=null;

return head;

}int main()

單鏈表的歸併

假設兩個按元素值非遞減有序排列的線性表a和b,均以單鏈表作為儲存結構,試編寫程式,將a表和b表歸併成乙個按元素值非遞增有序排列的線性表c,並要求利用原表 即a表和b表的 結點空間存放表c。第一行輸入兩個正整數m,n m,n 100 用空格分開,分別表示線性表a和b中元素個數,其後兩行分別輸入單鏈表a...

單鏈表的歸併排序

題目 單鏈表的歸併排序 思路 首先找到鍊錶的中間節點,將原始鍊錶一分為二,遞迴進行該操作,直到被劃分的兩個鍊錶包含的節點少於等於1個,即該次劃分後兩個鍊錶已經有序。然後依次合併兩個有序的鍊錶,直到所有劃分都合併完,即排序完畢。主要編寫將兩個有序鍊錶合併為乙個有序鍊錶的函式。includeusing ...

單鏈表的歸併排序

question 148.sort list sort a linked list in o n log n time using constant space complexity.中文 使用恆定的空間複雜度排序乙個鍊錶,要求時間複雜度是o nlogn 我們知道題目的要求是時間複雜度是o nlog...