集合的合并

该博客介绍了如何使用线性表(SeqList)结构合并两个集合。首先创建两个空表LA和LB,然后遍历LB,查找LA中不存在的元素并插入LA,以此达到合并目的。提供的C语言代码示例展示了具体实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 利用线性表LA和LB分别表示两个集合A和B,通过对线性表的应用来将两个集合合并为一个新的集合

建立两个空表,将集合存入两个线性表中,在LA中查找LB中元素,如果不存在该元素则将元素插入线性表LA中,从而实现两个集合的合并。

/*author:sangy
  time:2021-09-16
  version:1.0
  功能描述:利用线性表La和Lb分别表示两个集合A和B,现将两个集合合并为新的集合A
 */
#include<stdio.h>
#define MAXSIZE 100         /*线性表的最大长度*/
/*定义线性表*/
typedef struct List{
    int elem[MAXSIZE];     /*定义数组域*/
	int last;              /*线性表数组中最后元素在数组elem[]中的位置*/
}SeqList;
/*创建空表*/
void InitList(SeqList *La,SeqList *Lb)
{
	La->last=-1;
	Lb->last=-1;
}
/*合并集合A和集合B*/
void unin(SeqList *La,SeqList Lb)
{
	int i,j,La_len,Lb_len;
    int e;
	La_len=La->last;
	Lb_len=Lb.last;
	for(i=0;i<=Lb_len;i++)
	{  e=Lb.elem[i];
	   j=0;
	   while(j<=La_len&&e!=La->elem[j]) j++;    /*在La中查找e元素*/
	   if(j>La->last)                            /*La中不存在和e相同的元素,则插入之*/
		   if(La_len<MAXSIZE-1)                /*存储空间足够*/
			   La->elem[++(La->last)]=e;       /*插入到La的最后*/
	}
}
/*建立主函数*/
void main()
{
    int i,j;
    SeqList La;
    SeqList Lb;
    InitList(&La,&Lb);
	for(i=0;i<=10;i++){
		La.elem[i]=1+i;
		La.last+=1;
		Lb.elem[i]=5+i;
		Lb.last+=1;
	}
	unin(&La,Lb );
	for(j=0;j<=La.last;j++){
		printf("%d\n",La.elem[j]);
	}
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值