用链表求交集和并集c语言,用链表做集合的交集和并集

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

using namespace std;

const int MaxSize=10;

template

class LinkList

{

public:

LinkList();

LinkList(DataType a[],int n);

~LinkList();

int Length();

DataType Get(int i);

int Locate(DataType x);

void Insert(int i,DataType x);

DataType Delete(int i);

void PrintList();

private:

LinkList*first;

DataType data[MaxSize];

};

template

LinkList*p;

template

LinkList::LinkList(DataType a[],int n)

{

first=new LinkList;

first->next=NULL;

for(int i=0;i

{

s=new LinkList;

s->data[i];

s->next=first->next;

first->next=s;

}

}

template

void LinkList::PrintList()

{

p=first->next;

while(p!=NULL)

{

cout<data;

p=p->next;

} }

template

int LinkList::Length()

{

p=first->next;

int count=0;

while(p!NULL)

{

p=p->next;

count++;

} return count;

}

template

LinkList::Get(int i)

{

p=p->next;

int count=1;

while(p!=NULL&&count

{

p=p->next;

count++;

}

if(p=+NULL) throw "查找不到该元素"

else

return p->data;

}

template

void LinkList::Insert(int i,DataType x)

{

p=first;

int count=0;

while(p!=NULL&count

{

p=p->next;

count++;

}

if(p==NULL) throw"出错";

else

{

s=new LinkList;

s->datd=x;

s->next=p->next;

p->next=s;

}

}

template

LinkList::LinkList()

{

first=new LinkList;

first->next=NULL;

}

template

DataType LinkList::Delete(int i)

{

LinkList*q;

int x;

p=first;

int count=0;

while(p!=NULL&&count

{

p=p->next;

count++;

}

if(p==NULL||p->next==NULL)

{

throw"error";

}

else

{

q=p->next;

x=q->data;

q->next=p->next;

delete q;

return x;

} }

template

LinkList::~LinkList()

{

LinkList*q;

while(first!=NULL)

{

q=first;

first=first->next;

delete q;

}

}

int main()

{

LinkList*iptr;

int a[10];

cout<

{

cin>>a[i];

}

int size;

size=sizeof(a)/sizeof(int); iptr.LinkList(a,size);

int j;

cout<

cin>>j;

cout<Get(j)<

int d;

cout<

cin>>d;

cout<Delete(d)<

int k;

int e;

cout<

cin>>k>>e;

iptr.Insert(k,e);

cout<

p.~LinkList();

cout<

p.PrintList();

return 0;

}

自己慢慢看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值