單鏈表的合併

2021-07-26 14:24:17 字數 1640 閱讀 2726

/*

function:單鏈表的合併

created by : xilong

date: 2017.2.5

*/#include "iostream"

using

namespace

std;

#define true 1

#define false 0

#define ok 1

#define error 0

typedef

int elemtype;

typedef

int status;

typedef

struct node // 定義結構體

node;

typedef

struct node* linklist;

/* 功能:初始化乙個空鍊錶

*/linklist linklist_init()

/* 功能:尾插法建立單鏈表

*/void linklist_createformtail(linklist *head)

else

}}/*

功能:計算鍊錶長度

*/status linklist_length(linklist *head)

while (p != null)

return count-1;}/*

功能:兩個鍊錶合併

*/linklist linklist_merge(linklist *la, linklist *lb)

if (p2->next == null) // 如果第二個鍊錶為空,返回第乙個煉表頭結點

while (p1 && p1->next) // 如果第乙個鍊錶有元素,將其迴圈不斷指向下乙個結點,直到最後乙個結點

// 將第乙個鍊錶的最後乙個結點的next連線到第二個煉表頭結點的next,將兩個鍊錶串成乙個鍊錶

p1->next = (*lb)->next;

free(*lb);

return *la; // 返回第乙個鍊錶的頭結點}/*

功能:插入

*/status linklist_insert(linklist *head, int i, elemtype e)

if (pre == null || k > i || i > linklist_length(head))

s = (linklist)malloc(sizeof(linklist));

s->data = e;

s->next = pre->next;

pre->next = s;

return ok;}/*

功能:列印單鏈表中所有資料

有關單鏈表的刪除,查詢等操作,在前幾篇文章都有完整的**示例和程式截圖。

單鏈表的基本操作:

單鏈表(合併單鏈表)

單鏈表遍歷 單鏈表遍歷是從單鏈表頭指標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...