假設兩個按元素值非遞減有序排列的線性表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...