第3周 專案3 求集合並集

2021-09-30 12:45:49 字數 2882 閱讀 6207

/*   

*檔名稱:3-3.cbp

*作 者:畢夢楠

*完成日期:2023年9月25日

*版 本 號:v1.0

*

*問題描述:假設有兩個集合 a 和 b 分別用兩個線性表 la 和 lb 表示,即線性表中的資料元素即為

集合中的成員。設計演算法,用函式unionlist(list la, list lb, list &lc )函式實現該

*輸入描述:各個集合

*程式輸出:合併後的集合

*/

#ifndef list_h_included

#define list_h_included

#define maxsize 50

#include #include typedef int elemtype;

typedef struct

sqlist;

void unionlist(sqlist *la, sqlist *lb, sqlist *&lc);//求合集

void createlist(sqlist *&l, elemtype a, int n);//用陣列建立線性表

void initlist(sqlist *&l);//初始化線性表initlist(l)

void destroylist(sqlist *&l);//銷毀線性表destroylist(l)

bool listempty(sqlist *l);//判定是否為空表listempty(l)

int listlength(sqlist *l);//求線性表的長度listlength(l)

void displist(sqlist *l);//輸出線性表displist(l)

bool getelem(sqlist *l,int i,elemtype &e);//求某個資料元素值getelem(l,i,e)

int locateelem(sqlist *l, elemtype e);//按元素值查詢locateelem(l,e)

bool listinsert(sqlist *&l,int i,elemtype e);//插入資料元素listinsert(l,i,e)

bool listdelete(sqlist *&l,int i,elemtype &e);//刪除資料元素listdelete(l,i,e)#endif // list_h_included

#endif

在原演算法庫中增加了求合集函式的宣告

#include "list.h"

//求合集

void unionlist(sqlist *la, sqlist *lb, sqlist *&lc)

lena=listlength(la); //求線性表la的長度

for (i=1; i<=listlength(lb); i++)

}//以下為演算法庫功能函式

//用陣列建立線性表

void createlist(sqlist *&l, elemtype a, int n)

//初始化線性表initlist(l)

void initlist(sqlist *&l) //引用型指標

//銷毀線性表destroylist(l)

void destroylist(sqlist *&l)

//判定是否為空表listempty(l)

bool listempty(sqlist *l)

//求線性表的長度listlength(l)

int listlength(sqlist *l)

//輸出線性表displist(l)

void displist(sqlist *l)

//求某個資料元素值getelem(l,i,e)

bool getelem(sqlist *l,int i,elemtype &e)

//按元素值查詢locateelem(l,e)

int locateelem(sqlist *l, elemtype e)

//插入資料元素listinsert(l,i,e)

bool listinsert(sqlist *&l,int i,elemtype e)

//刪除資料元素listdelete(l,i,e)

bool listdelete(sqlist *&l,int i,elemtype &e)

同樣heji.cpp檔案中也增加了相應的功能函式定義

#include "list.h"

//用main寫測試**

int main()

; createlist(sq_a, a, 6);

printf("la: ");

displist(sq_a);

elemtype b[6]= ;

createlist(sq_b, b, 5);

printf("lb: ");

displist(sq_b);

unionlist(sq_a, sq_b, sq_c);

printf("lc: ");

displist(sq_c);

return 0;

}

main.cpp檔案根據需求寫相應**

執行結果如下:

知識點總結:

這個專案增加了我們對實際問題的求解以及對演算法庫的應用。

學習心得:

通過這個專案,我懂得了學習線性表這方面的知識一定要親自動手編寫相關**,因為動手才能知道自己會把錯誤犯在哪,只有犯錯誤才會是自己不斷的提高。

第3周專案3 求集合並集

問題 檔名稱 專案3.cbp 作 者 王聰 完成日期 2015年9月17日 版 本 號 v1.0 問題描述 假設有兩個集合 a 和 b 分別用兩個線性表 la 和 lb 表示,即線性表中的資料元素即為 集合中的成員。設計演算法,用函式unionlist list la,list lb,list lc...

第3周 專案3 求集合並集

檔名稱 1.pp 完成日期 2015年9月18日 問題描述 求集合並集 include include define maxsize 50 typedef int elemtype typedef struct sqlist void createlist sqlist l,elemtype a,i...

第3周專案3 求集合並集

檔名稱 專案3 求集合並集.cpp 作 者 陳勝男 完成日期 2015年10月9日 版 本 號 v1.0 問題描述 假設有兩個集合 a 和 b 分別用兩個線性表 la 和 lb 表示,即線性表中的資料元素即為集合中的成員。設計演算法,用函式unionlist list la,list lb,list...