//預編譯區::
#include "stdafx.h"
#include#include#define ok 1
#define error 0
#define gt 1
#define eq 0
#define lt -1
using namespace std;
//資料結構宣告區:
typedef struct lnodelinklist;
//函式宣告區:
void initlink(linklist &l);
void insertlink(linklist *tail, linklist *s);
int lengthlink(linklist &l);
void creatlink(linklist &l);
void displink(linklist &l, char c);
void sortlink(linklist &l);
void merge(linklist a, linklist b, linklist &temp);
//主函式區:
int main(void)
//初始化鍊錶集合:
void initlink(linklist &l)
//插入元素:直接尾插法插入集合,tail是上一次記錄的為指標位置
void insertlink(linklist *tail, linklist *s)
//判斷集合元素個數
int lengthlink(linklist &l)
return len;
}//建立乙個集合元素
void creatlink(linklist &l)
return;
}//輸出集合元素
void displink(linklist &l, char c)
} printf("\n");
return;
}//將集合排序
void sortlink(linklist &l)
return;
}//順序線性表合併
void merge(linklist a, linklist b, linklist &temp)
else if (lena != 0 && lenb == 0)
else if (lena == 0 && lenb != 0)
if (lena>lenb)
else
while (pa != null&&pb != null)
while (pa->next != null && pa->next->data < pb->data)
pa = pa->next; //移動之後又出現了可能相同的情況,要重新再比較一次
if (pa->next != null&&pa->next->data == pb->data)
pb = pb->next; //先移動pb,用temp代替原始pb進行操作
特殊鍊錶及順序表的合併
與單鏈表不同的地方 最後乙個結點的指標域指向l 某些情況下,若在迴圈鍊錶中設立尾指標而不設頭指標 見圖2.18 a 可使一些操作簡化。例如,將兩個線性表合併成乙個表時,僅需將第乙個表的尾指標指向第二個表的第38 第2章線性表乙個結點,第二個表的尾指標指向第乙個表的頭結點,然後釋放第二個表的頭結點。雙...
線性表的合併 有序表(利用順序表)的合併
例1 求解一般集合的並集問題 問題描述 已知兩個集合 a 和 b 現要求乙個新的集合 a a u b 例如,設 a 7,5,3,11 b 2,6,3 合併後,a 7,5,3,11,2,6 問題分析 可以利用兩個線性表 la 和 lb 分別表示集合 a 和 b 即線性表中的資料元素為集合中的成員 這樣...
順序鍊錶的實現
寫了一下順序鍊錶,為了防止自己忘記,於是乎寫在部落格裡方便檢視。程式中的容錯處理做的不好,是我懶了,就簡單處理了一下 下面才給出這兒一套api函式 標頭檔案 ifndef seqlist h define seqlist h include include include typedef void ...