/*
function:迴圈單鏈表的合併
created by : xilong
date: 2017.2.5
*/#include "iostream"
using
namespace
std;
#define ok 1
#define error 0
#define true 1
#define false 0
typedef
double elemtype;
typedef
int status;
typedef
struct node
node;
typedef
struct node* clinklist;
/* 功能:初始化
*/clinklist clinklist_init()
/* 功能:尾插法建立迴圈單鏈表
*/void clinklist_createformtail(clinklist *head)
else
}}/*
功能:合併兩個迴圈鍊錶
*/clinklist clinklist_merge(clinklist *la, clinklist *lb)
if (p2->next == p2) // 如果第二個鍊錶為空,返回第乙個煉表頭結點
while (p1->next != (*la)) // 找到表la的表尾,用p1指向它
while (p2->next != (*lb)) // 找到表lb的表尾,用p2指向它
p2->next = *la; // 修改表lb的尾指標,使之指向表la的頭結點
p1->next = (*lb)->next; // 修改表la的尾指標,使之指向表lb中的第乙個結點
free(*lb);
return *la; // 返回表la的頭結點}/*
功能:列印鍊錶資料
有關迴圈單鏈表的刪除,查詢等操作,在前幾篇文章都有完整的**示例和程式截圖。
單鏈表的基本操作:
單鏈表(合併單鏈表)
單鏈表遍歷 單鏈表遍歷是從單鏈表頭指標head開始訪問,沿著next指標所指示的方向依次訪問每乙個結點,且每個結點只能訪問依次,直到最後乙個結點為止。遍歷時注意,不要改變head指標的指向。因此一般設定另外的乙個指標變數如p,p從head開始依次訪問乙個結點,直到鍊錶結束,此時p null,完成依次...
單鏈表的合併演算法 3 2 單鏈表的合併
問題描述 兩個非降序鍊錶的並集,例如將鍊錶1 2 3 和 2 3 5 並為 1 2 3 5,只能輸出結果,不能修改兩個鍊錶的資料。輸入形式 第一行首先是資料的個數,然後是第乙個鍊錶的各結點值,以空格分隔。第二行首先也是資料的個數,然後是第二個鍊錶的各結點值,以空格分隔。輸出形式 合併好的鍊錶,以非降...
單鏈表合併
某公司的面試題。兩個公升序單鏈表a,b,給定乙個節點c。不能申請其他節點情況下將a,b 按公升序排列。include include include struct link 建立鍊錶 nrandom 自由因子 ncount 鍊錶節點數目 link create const int nrandom,c...