c语言两个线性表la lb,有两个集合用两个线性表LA和LB表示即线性表中的数据元素即为集合中的成员现要求一个新的集合...

《有两个集合用两个线性表LA和LB表示即线性表中的数据元素即为集合中的成员现要求一个新的集合》由会员分享,可在线阅读,更多相关《有两个集合用两个线性表LA和LB表示即线性表中的数据元素即为集合中的成员现要求一个新的集合(5页珍藏版)》请在人人文库网上搜索。

1、例2-1 假设有两个集合A和B分别用两个线性表LA和LB表示,即:线性表中的数据元素即为集合中的成员。现要求一个新的集合AAB。/上述问题可演绎为:要求对线性表作如下操作:扩大线性表LA,将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中去。/操作步骤:1从线性表LB中依次察看每个数据元素;GetElem(LB,i)e2依值在线性表LA中进行查访;LocateElem(LA,e,equal( )3若不存在,则插入之。ListInsert(LA,n+1,e)/void union(List &La,List Lb)La_len=ListLength(La);/求线性表的长度L。

2、b_len=ListLength(Lb);for(i=1;i#include #include List.hStatus InitList(List &L)/构造一个空的线性表L。L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!L.elem) exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;return OK;/InitListvoid CreateList(List &L, int a,int n)/顺序输入n个数据元素,建立顺序表int i;for(i=0;iL。

3、.length+1) return ERROR;/i值不合法if(L.length=L.listsize) /当前存储空间已满,增加分配newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType);if(!newbase) exit(OVERFLOW);/存储分配失败L.elem=newbase;/新基址L.listsize+=LISTINCREMENT;/增加存储容量 q=&(L.elemi-1);/q为插入位置for(p=&(L.elemL.length-1);p=q;-p) *(p+1)=*p;。

4、 /插入位置及之后的元素右移*q=e;/插入e+L.length;/表长增1return OK; / ListInsert void PrintList(List L)/ 输出顺序表Lint i;printf(n);for(i=1;i#include #include List.hint a=3,5,8,11;int b=2,6,8,9,11,15,20;Status equal(ElemType,ElemType);void Union(List &,List);Status equal(ElemType x,ElemType y)return x=y;void Union(List &La。

5、,List Lb)/ 将所有在线性表Lb中但不在La中的数据元素插入到La中int i;int e;int La_len,Lb_len;La_len=ListLength(La);Lb_len=ListLength(Lb);for(i=1;i=Lb_len;i+)GetElem(Lb,i,e);if(!LocateElem(La,e,equal)ListInsert(La,+La_len,e);/Unionint main()List La,Lb;InitList(La);InitList(Lb);CreateList(La,a,4);CreateList(Lb,b,7);printf(集合A:);PrintList(La);printf(集合B:);PrintList(Lb);Union(La,Lb);printf(集合A U B:);PrintList(La);printf(A与B的并集对吗?);getchar();return 0;。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值