兩個線性表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 ...