第三週專案3 求集合並集

2021-07-22 19:25:03 字數 3315 閱讀 7829

問題及**:

/* * 檔名稱:專案3.cpp 

* 作    者:陳哲

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

* 版 本 號:v1.0  

*問題描述:假設有兩個集合 a 和 b 分別用兩個線性表 la 和 lb 表示,

即線性表中的資料元素即為集合中的成員。設計演算法,用函式

unionlist(list la, list lb,         list &lc )函式

實現該演算法,求乙個新的集合c=a∪b,即將兩個集合的並集放

*輸入描述:每個集合   

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

標頭檔案:list.h

[cpp]view plain

copy

#define maxsize 50  

#include 

#include 

typedef

intelemtype;    

typedef

struct

sqlist;    

void

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

//求合集  

void

createlist(sqlist *&l, elemtype a, 

intn);

//用陣列建立線性表  

void

initlist(sqlist *&l);

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

void

destroylist(sqlist *&l);

//銷毀線性表destroylist(l)  

bool

listempty(sqlist *l);

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

intlistlength(sqlist *l);

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

void

displist(sqlist *l);

//輸出線性表displist(l)  

bool

getelem(sqlist *l,

inti,elemtype &e);

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

intlocateelem(sqlist *l, elemtype e);

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

bool

listinsert(sqlist *&l,

inti,elemtype e);

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

bool

listdelete(sqlist *&l,

inti,elemtype &e);

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

原始檔:list.cpp

[cpp]view plain

copy

#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, 

intn)    

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

void

initlist(sqlist *&l)   

//引用型指標  

//銷毀線性表destroylist(l)  

void

destroylist(sqlist *&l)    

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

bool

listempty(sqlist *l)    

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

intlistlength(sqlist *l)    

//輸出線性表displist(l)  

void

displist(sqlist *l)    

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

bool

getelem(sqlist *l,

inti,elemtype &e)    

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

intlocateelem(sqlist *l, elemtype e)    

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

bool

listinsert(sqlist *&l,

inti,elemtype e)    

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

bool

listdelete(sqlist *&l,

inti,elemtype &e)    

原始檔:main.cpp

[cpp]view plain

copy

#include "list.h"  

//用main寫測試**  

intmain()    

;    

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;    

}    

執行結果:

知識點總結:

充分利用演算法庫解決實際問題。

學習心得:

通過對演算法庫的具體實踐,更加深刻的了解了演算法庫的應用。

第三週專案3 求集合並集

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

第三週專案3 求集合並集

專案名稱 專案3 求集合並集 題目描述 標頭檔案list.h ifndef list h included define list h included define maxsize 50 include include typedef int elemtype typedef struct sql...

第三週 專案3 求集合並集

檔名稱 1 順序表list.cpp 2 順序表list.h 3 集合並集.cpp 作 者 林穎 完成日期 2016年9月16日 問題描述 假設有兩個集合 a 和 b 分別用兩個線性表 la 和 lb 表示,即線性表中的資料元素即為集合中的成員。設計演算法,用函式unionlist list la,l...