最佳回答
#include
typedef int ElemType;
struct SNode {
ElemType data;
SNode* next;
};
void InitSet(SNode*& HT)
{
HT=NULL;
}
void ClearSet(SNode*& HT)
{
SNode *p=HT, *q;
while(p!=NULL)
{
q=p->next;
delete p;
p=q;
}
HT=NULL;
}
int LenthSet(SNode* HT)
{
int n=0;
while(HT!=NULL)
{
n++;
HT=HT->next;
}
return n;
}
bool EmptySet(SNode* HT)
{
return HT==NULL;
}
bool Inset(SNode* HT, ElemType item)
{
while(HT!=NULL)
{
if(HT->data==item) return true;
else HT=HT->next;
}
return false;
}
void OutputSet(SNode* HT)
{
while(HT!=NULL)
{
coutdata==item) break;
else HT=HT->next;
}
if(HT!=NULL)
{
HT->data=temp;
return true;
}
else return false;
}
bool InsertSet(SNode*& HT, ElemType item)
{
//建立值为item的新结点
SNode* newptr= new SNode;
newptr->data=item;
//从单链表中顺序查找是否存在值为item的结点
SNode* p=HT;
while(p!=NULL)
{
if(p->data==item) break;
else p=p->next;
}
// 若不存在则把新结点插入到表头并返回真,否则不返回假
if(p==NULL)
{
newptr->next=HT;
HT=newptr;
return true;
}
else return false;
}
bool DeleteSet(SNode*& HT, ElemType& item)
{
//从单链表中顺序查找是否存在值为item的结点
SNode *cp=HT, *ap=NULL;
while(cp!=NULL)
{
if(cp->data==item) break;
else
{
ap=cp;
cp=cp->next;
}
}
//若不存在则不返回假,表明删除失败
if(cp==NULL)
return false;
//由item带回待删除结点cp的完整值,若不需要带回可设置item为值参
item=cp->data;
if(ap==NULL) HT=cp->next;
//从单链表中删除已经找到的cp结点并对ap是否为表头做不同处理
else ap->next = cp->next;
//删除cp结点后返回真
delete cp;
return true;
}
//求两集合的并集
void UnionSet(SNode* HT1, SNode* HT2, SNode*& HT)
{
HT=NULL;
//把HT1集合单链表元素复制到HT集合单链表中
SNode* p=HT1;
while(p!=NULL)
{
//建立新结点并赋值为p->data
SNode* newptr=new SNode;
newptr->data=p->data;
//把新结点插入到HT集合单链表的表头并让P指向下一个结点
newptr->next=HT;
HT=newptr;
p=p->next;
}
//把HT1集合单链表的每个元素插入到HT集合单链表中
p=HT2;
while(p!=NULL)
{
InsertSet(HT, p->data);
p=p->next;
}
}
//求集合的交集
void InterseSet(SNode* HT1, SNode* HT2, SNode*& HT)
{
HT=NULL;
ElemType x;
SNode* p=HT2;
while(p!=NULL)
{
x=p->data;
bool b=FindSet(HT1,x); //用x查找HT1集合
if(b) InsertSet(HT,x); //若查找成功则把x插入到HT集合中
p=p->next;
}
if(HT==NULL)
cout
最新回答共有2条回答
-
2026-04-07 00:51:23伶俐的枕头
回复#includetypedef int ElemType;struct SNode {ElemType data;SNode* next;};void InitSet(SNode*& HT){HT=NULL;}void ClearSet(SNode*& HT){SNode *p=HT, *q;while(p!=NULL) {q=p->next;delete p;p=q;}HT=NULL;}int LenthSet(SNode* HT){int n=0;while(HT!=NULL) {n++;HT=HT->next;}return n;}bool EmptySet(SNode* HT){return HT==NULL;}bool Inset(SNode* HT, ElemType item){while(HT!=NULL) {if(HT->data==item) return true;else HT=HT->next;}return false;}void OutputSet(SNode* HT){while(HT!=NULL) {coutdata==item) break;else HT=HT->next;}if(HT!=NULL) { HT->data=temp; return true;}else return false;}bool InsertSet(SNode*& HT, ElemType item){//建立值为item的新结点SNode* newptr= new SNode;newptr->data=item;//从单链表中顺序查找是否存在值为item的结点SNode* p=HT;while(p!=NULL) {if(p->data==item) break;else p=p->next;}// 若不存在则把新结点插入到表头并返回真,否则不返回假if(p==NULL) {newptr->next=HT; HT=newptr; return true;}else return false;}bool DeleteSet(SNode*& HT, ElemType& item){//从单链表中顺序查找是否存在值为item的结点SNode *cp=HT, *ap=NULL;while(cp!=NULL){if(cp->data==item) break;else {ap=cp; cp=cp->next;}}//若不存在则不返回假,表明删除失败if(cp==NULL) return false;//由item带回待删除结点cp的完整值,若不需要带回可设置item为值参item=cp->data;if(ap==NULL) HT=cp->next;//从单链表中删除已经找到的cp结点并对ap是否为表头做不同处理else ap->next = cp->next;//删除cp结点后返回真delete cp;return true;}//求两集合的并集void UnionSet(SNode* HT1, SNode* HT2, SNode*& HT){HT=NULL;//把HT1集合单链表元素复制到HT集合单链表中SNode* p=HT1;while(p!=NULL){//建立新结点并赋值为p->dataSNode* newptr=new SNode;newptr->data=p->data;//把新结点插入到HT集合单链表的表头并让P指向下一个结点newptr->next=HT; HT=newptr;p=p->next;}//把HT1集合单链表的每个元素插入到HT集合单链表中p=HT2;while(p!=NULL) {InsertSet(HT, p->data);p=p->next;}}//求集合的交集void InterseSet(SNode* HT1, SNode* HT2, SNode*& HT){HT=NULL;ElemType x;SNode* p=HT2;while(p!=NULL) {x=p->data; bool b=FindSet(HT1,x); //用x查找HT1集合if(b) InsertSet(HT,x); //若查找成功则把x插入到HT集合中p=p->next;}if(HT==NULL)cout
热门文章
- 康达学院专转本五年制
- 高考一个考场分ab卷吗
- not only but also用法
- 某物体做自由落体运动,从释放开始计时,则物体在前2s内的平均速度为______m/s,物体下落2m时的速度大小为______m/s.
- 三角函数公式大全表格
- 地理中考必背知识点2022
- 2013-2014学年小学六年级科学上学期期末考试试卷及答案
- 人教版2014-2015学年小学五年级英语第二学期期中教学质量检测试卷及答案
- 【Linux驱动开发】设备树详解(二)设备树语法详解
- 别跟客户扯细节
- 在别的城市买房子能落户吗
- 卖房前要把装修贷还完吗
- 高中政治教学提高教学效果的方法探究
- “互联网+”背景下的初中英语课堂教学改革与创新策略研究
- 2022年终止合同范本
- 租房合同范本范文
- 如何挑选土豆
- 如何挑选土鸡
