91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

題目: 7. 集合運(yùn)算 (單循環(huán)鏈表) 1.問題描述: 設(shè)有兩個(gè)帶頭結(jié)點(diǎn)的單循環(huán)鏈表存儲(chǔ)的集合A、B,其元素類型為字符或者整形,且以非遞減方式存儲(chǔ),其頭結(jié)點(diǎn)分別為ha、hb。要求下面各問題中的結(jié)果集合同樣以非遞減方式存儲(chǔ),結(jié)果集合不影響原集合。 2.實(shí)現(xiàn)要求: ⑶ 編寫集合元素測試函數(shù)IN_SET,如果元素已經(jīng)在集合中返回0,否則返回1; ⑷ 編寫集合元素輸入并插入到單鏈表中的函數(shù)INSERT_SET,保證所輸入的集合中的元素是唯一且以非遞減方式存儲(chǔ)在單循環(huán)鏈表中; ⑶ 編寫求集合A、B的交C=A∩B的函數(shù),并輸出集合C的元素; ⑷ 編寫求集合A、B的并D=A∪B的函數(shù),并輸出集合D的元素; ⑸ 求集合A與B的對稱差E=(A-B)∪(B-A) 的函數(shù),并輸出集合D的元素; ⑹ 設(shè)計(jì)一個(gè)菜單,具有輸入集合元素、求集合A、B的交C、求集合A、B的并D、求集合A與B的對稱差E、退出等基本的功能。 3.測試數(shù)據(jù):字符型和整形由同學(xué)們自定,但集合A、B的元素個(gè)數(shù)不得少于15個(gè)。

資源截圖

代碼片段和文件信息

#include?
#include
#include
#include
using?namespace?std;
typedef?char?DataType;?

typedef?struct?Aggreage//集合結(jié)構(gòu)體
{
DataType?element;//元素
struct?Aggreage?*next;
}SAggreage;

int?print_Aggreage(SAggreage?*head);//輸出一個(gè)集合?

void?AggreageInitiate(SAggreage?**head);//初始化函數(shù)(創(chuàng)建頭結(jié)點(diǎn))

int?IN_SET(SAggreage?*headDataType?elem);//判斷A元素是否在這個(gè)集合中

int?newspace(SAggreage?**headDataType?elem);//給結(jié)點(diǎn)開辟空間?

int?isempty(SAggreage?*head);//判斷該集合是否為空

int?INSERT_SET(SAggreage?*headDataType?elem);//插入唯一元素

int?create(SAggreage?**head);

SAggreage*?Intersection(SAggreage*?ASAggreage*?B);//交?

SAggreage*?Union(SAggreage*?ASAggreage*?B);//并?
SAggreage*?Unionn(SAggreage*?ASAggreage*?B);

SAggreage*?Difference(SAggreage*?ASAggreage*?B);//差

void?load(SAggreage*?haSAggreage*?hb);//讀文件數(shù)據(jù)到鏈表

void?save(SAggreage*?haSAggreage*?hb);//保持鏈表數(shù)據(jù)到文件中

//菜單
void?mainmenu()
{
cout<<“==============================集合運(yùn)算==============================“< cout<<“||????????????1.交????????????2.并???????????????3.對稱差?????????||“< cout<<“||????????????4.輸入集合AB????5.導(dǎo)入集合AB???????6.查看集合???????||“< cout<<“||????????????7.保存集合AB????8.退出程序??????????????????????????||“< cout<<“====================================================================“<}

void?menu6()
{
cout<<“=======================查看集合=======================“< cout<<“||?????????????????1.集合A????2.集合B???????????????||“< cout<<“||?????????????????3.返回上一級菜單?????????????????||“< cout<<“======================================================“<}

//初始化函數(shù)(創(chuàng)建一個(gè)頭指針)
void?AggreageInitiate(SAggreage?**head)
{
*head?=?(SAggreage?*)malloc(sizeof(SAggreage));
(*head)->next?=?*head;//循環(huán)單鏈表//之前:(*head)->next?=?head;
}

//判斷A元素是否在這個(gè)集合中
int?IN_SET(SAggreage?*headDataType?elem)
{
int?flag?=1;//初始假設(shè)集合中沒有這個(gè)元素,檢查到有后再將標(biāo)志改為0;
//如果元素已經(jīng)在集合中返回0,否則返回1;
SAggreage?*p?=?head;
while(p->next?!=?head)//從頭指針開始,當(dāng)p不是最后一個(gè)的時(shí)候(只有頭指針的話,不執(zhí)行里面的語句)
{
p?=?p->next;//p指向下一個(gè)(從第一個(gè)數(shù)據(jù)開始),到最后一個(gè),如果中間有和a元素一樣的,就break
//返回0,否則返回1;(是1就可以繼續(xù)添加)
if(p->element?==?elem)
{
flag?=?0;
break;
}
}
return?flag;
}

//開辟一塊內(nèi)存的函數(shù)(后來根據(jù)功能和代碼重復(fù)出現(xiàn)的次數(shù)自己添加的函數(shù))
int?newspace(SAggreage?**headDataType?elem)//////////?int?newspace(SAggreage?*headDataType?elem)
{
//cout<<“辟一塊內(nèi)存的函數(shù)“?< SAggreage?*p?=?*head;//////////////////?head;
SAggreage?*s;
s?=?(SAggreage?*)malloc(sizeof(SAggreage));
s->element?=?elem;
s->next?=?p->next;
p->next?=?s;
return?1;
}

//判斷該集合是否為空(判斷頭指針的下一個(gè)是否為頭指針)
int?isempty(SAggreage?*head)
{
//是空返回1
//int?num;
SAggreage?*p?=?head;
if(p->next?==?head)//if(p->next?=?head)應(yīng)該是==,哎,搞死我了
{
return?1;
}
else
{
return?0;
}
}


//插入唯一元素
int?INSERT_SET(SAggreage?*headDataType?elem)//SAggreage?*head因?yàn)槭侵羔槪薷牧艘部梢员4鏀?shù)據(jù),
//若插入成功則返回1,否則返回0;
{
//cout<<“進(jìn)入插入唯一元素的函數(shù)“< //1.先檢查集合中是否有這個(gè)元素//&head還是head
if

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件?????????10??2019-04-01?09:21??集合運(yùn)算\B.txt

?????文件??????18580??2019-04-01?09:17??集合運(yùn)算\ccc.cpp

?????文件????1929440??2019-04-01?09:28??集合運(yùn)算\ccc.exe

?????文件?????????10??2019-04-01?09:21??集合運(yùn)算\A.txt

?????目錄??????????0??2019-04-01?09:39??集合運(yùn)算

-----------?---------??----------?-----??----

??????????????1948040????????????????????5


評論

共有 條評論

相關(guān)資源