C語言資料結構 鍊錶合併

2021-10-22 13:47:50 字數 2007 閱讀 1926

設線性表a=(a1, a2,…,am),b=(b1, b2,…,bn),試寫乙個按下列規則合併a、b為線性表c的演算法,使得:

c= (a1, b1,…,am, bm, bm+1, …,bn) 當m≤n時;

或者c= (a1, b1,…,an, bn, an+1, …,am) 當m>n時。

線性表a、b、c均以單鏈表作為儲存結構,且c表利用a表和b表中的結點空間構成。注意:單鏈表的長度值m和n均未顯式儲存。

函式的原型如下:

void lnk_merge(linklist a, linklist b, linklist c)

struct _lnklist;

typedef struct _lnklist node;

typedef struct _lnklist *linklist;

提供**

#include #include #include "list.h" // 請不要刪除,否則檢查不通過

void lnk_merge(linklist a, linklist b, linklist c)

參考**

/*

鍊錶 合併

設線性表a=(a1, a2,…,am),b=(b1, b2,…,bn),試寫乙個按下列規則合併a、b為線性表c的演算法,使得:

c= (a1, b1,…,am, bm, bm+1, …,bn) 當m≤n時;

或者c= (a1, b1,…,an, bn, an+1, …,am) 當m>n時。

線性表a、b、c均以單鏈表作為儲存結構,且c表利用a表和b表中的結點空間構成。注意:單鏈表的長度值m和n均未顯式儲存。

函式的原型如下:

void lnk_merge(linklist a, linklist b, linklist c)

即將a和b合併為c,其中 c 已經被初始化為空單鏈表

*//*

分析:三個鍊錶都要改為帶頭結點的鍊錶

*/#define _crt_secure_no_warnings

#include #include //#include "list.h" // 請不要刪除,否則檢查不通過

#define elemtype int

struct _lnklist ;

typedef struct _lnklist node;

typedef struct _lnklist* linklist;

void lnk_merge(linklist a, linklist b, linklist c)

else

if (tmpb == null)

else

}}linklist creatlist()

void pushbyend(linklist l, int n)

l->next = node;

node->data = n;

node->next = null;

}void print(linklist l)

printf("%d ", l->data);

printf("\n");

}int main()

print(a);

printf("請輸入從大到小的b鍊錶,按回車輸入下乙個數字,按ctrl+z結束輸入:>\n");

linklist b = creatlist();

if (b == null) return;

while (scanf("%d", &n) != eof)

print(b);

linklist c = creatlist();

lnk_merge(a, b, c);

print(c);

return 0;

}

手繪過程

資料結構 有序鍊錶合併(C語言版)

有序鍊錶合併 兩個有序的鍊錶,要求將其合併為乙個鍊錶,並且該鍊錶保持有序!這裡所講的是鍊錶公升序!首先,我們要構造兩張按照公升序排列好的鍊錶。構造鍊錶 我們的方法有尾插,頭插,大家可以click鏈結來檢視 這裡我們的實驗資料,以及思路如圖所示!實驗資料 鍊錶1 1,3,5,7 鍊錶2 1,2,4 5...

資料結構之合併鍊錶

題目 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則 分析 鍊錶1的頭結點小於鍊錶2的頭結點,那麼鍊錶1的頭結點將是合併後鍊錶的頭結點,如果鍊錶2的頭結點小於鍊錶1的頭結點那麼鍊錶2的頭結點將是合併後剩餘節點的頭結點,當我們把兩個鍊錶中值較小的頭結點鏈結到...

資料結構(C語言) 單向鍊錶

c語言的單向鍊錶,就是在乙個將一些資料放在乙個結構體裡,然後在結構體裡加 struct next 的成員,用於指向下一結點。引用時,建立乙個臨時的結構體變數進行引用。如原結構體變數為 struct p 則 可建立 struct temp,然後 for temp p temp next null te...