#include
using namespace std;
typedef struct lnode_ lnode, *linklist;
void initlist_l(linklist &l) //建立單鏈表
void input(linklist &l, int n) //依次往單鏈表l裡輸入資料
}void output(linklist &l,int n) //依次輸出單鏈表裡的每個元素
}p = l->next;
for (i = 0; i < n; i++)
cout << 「排序後順序為:」;
for (i = 0; i < n; i++) cout << a[i] << " "; cout << endl;
}
linklist mergetlist(linklist &la, linklist &lb,linklist &lc)
else if(pa->data>pb->data)
else }
pc -> next = pa ? pa : pb;
delete lb;
return lc;
}void display(linklist l)
}int main()
{int num_a=5, num_b=5;
linklist la, lb, lc;
initlist_l(la); //la表的建立
input(la, num_a);
output(la,5 );
initlist_l(lb); //lb表的建立
input(lb, num_b); //依次往單鏈表la裡輸入資料
output(lb, 5);
initlist_l(lc);
mergetlist(la, lb, lc); //將單鏈表la和lb進行合併
display(lc);
system("pause");
return 0;
單鏈表 兩個有序鍊錶合併為乙個有序
1 new乙個新的鍊錶,定義結點用來遍歷兩個待排序的鍊錶 2 兩個待排序的鍊錶,哪個頭結點小,哪個作為新鍊錶的頭結點 3 對兩個鍊錶的結點進行比較,讓新鍊錶的next指向較小的結點,更新新鍊錶的尾巴,繼續比較直至某個鍊錶遍歷結束。4 遍歷結束,如果哪個鍊錶沒遍歷完,將剩下的幾點串在新鍊錶的後面,即當...
兩個有序鍊錶合併為有序
include 兩個有序遞增的單鏈表 有頭結點 合併為新單鏈表。include 用尾插法表示這兩個鍊錶較好,因為這樣建立鍊錶是有序的,遞增的。如果用頭插法,for迴圈改為for i n i 0,i 使其新建的鍊錶遞增 typedef struct lnode lnode lnode creat ln...
將兩個無序陣列合併為有序鍊錶
實現思想 把兩個無序的陣列首先排序,然後再按照鍊錶結構把它們分別構造好,然後再把兩個有序鍊錶合併。int const array1 size 5 陣列1的長度 int const array2 size 7 陣列2的長度 鍊錶結構體 typedef struct listnode listnode ...