鍊錶的合併

2021-06-02 21:57:22 字數 577 閱讀 9089

兩個線性表a,b,均以單鏈表做儲存結構,編寫演算法將表a和表b合併成乙個按元素值遞增有序排列的線性表c,要求用原表的結點空間存放表c

#define null 0

#include"stdio.h"

#include"malloc.h"

typedef struct lnode

lnode,*linklist;

//*帶頭結點的尾插法建立單鏈表,返回表頭指標*/

linklist  creatlist()

r->next=null;

return (head);

}///

//兩個有序鍊錶的合併!!注意是公升序

linklist connect(linklist head1,linklist head2)

else

}p->next=p1?p1:p2;//連線剩下的鍊錶

free(head2);

return(head1);

}/*遍歷線性表a中的元素*/

void output(linklist head)

printf("\n");

}main()

鍊錶的合併

對於鍊錶的操作,還有幾個是比較常用的,比如 將兩個已排序的鍊錶合併成乙個長的排序鍊錶 在已排序的鍊錶中插入乙個元素 對乙個無序鍊錶根據給定的某個值,進行分割槽。現在,我們就來看看這三個問題。問題 如何將兩個排序鍊錶合併成乙個長排序鍊錶 分析 有兩個鍊錶curr1,curr2,構建乙個新的鍊錶 dum...

鍊錶的合併

include include typedef struct lnode list struct lnode list l struct lnode lnode list create pre next null return l void print list l while p printf n...

鍊錶的合併

輸入格式 第一行 單鏈表a的元素個數 第二行 單鏈表a的各元素 非遞減 用空格分開 第三行 單鏈表b的元素個數 第四行 單鏈表b的各元素 非遞減 用空格分開 輸出格式 第一行 單鏈表a的元素列表 第二行 單鏈表b的元素列表 第三行 合併後單鏈表c的元素列表 輸入樣例 612 24 45 62 84 ...