单链表合并-不重复

单链表合并-不重复

具体代码

#include<stdio.h>
#define MAXSIZE 11
 
typedef struct{
	int *elem;
	int length;
}SqList; 

bool List_Init(SqList &L){
	L.elem = new int[MAXSIZE];
	if(!L.elem){
		return false;
	}
	L.length = 0;
	return true;
}

bool List_Insert(SqList &L,int index,int e){
	if(index<0||index>MAXSIZE-1||L.length>=MAXSIZE){
		return false;
	}
	for(int i=L.length;i>index;i--){
		L.elem[i] = L.elem[i-1];
	}
	L.elem[index-1] = e;
	L.length++;
	return true;
}

bool List_Delete(SqList &L,int index){
	if(index<0||index>L.length){
		return false;
	}
	for(int i=index;i<L.length;i++){
		L.elem[i-1] = L.elem[i];
	}
	L.length--;
}

int List_Find(SqList &L,int e){
	for(int i=0;i<MAXSIZE;i++){
		if(L.elem[i]==e){
			return i+1;
		}
	}
	return -1;
}

void List_Print(SqList &L){
	for(int i=0;i<L.length;i++){
		printf("%d ",L.elem[i]);
	}
}

void List_Union(SqList &L1,SqList &L2){
	for(int i=0;i<L2.length&&i<=MAXSIZE;i++){
		bool findflag=true;
		for(int j=0;j<L1.length&&j<=MAXSIZE;j++){
			if(L1.elem[j]==L2.elem[i]){
				findflag=false;
			}
		}
		if(findflag){
			List_Insert(L1,L1.length+1,L2.elem[i]);
		}
	}
}
int main(){
	SqList L1;
	SqList L2;
	List_Init(L1);
	List_Init(L2);
	for(int i=1;i<=5;i++){
		List_Insert(L1,i,i);
	}
	printf("L1:");
	List_Print(L1);
	for(int i=1;i<=5;i++){
		List_Insert(L2,i,i*2);
	}
	printf("\nL2:");
	List_Print(L2);
	printf("\nL1+L2:");
	List_Union(L1,L2);
	List_Print(L1);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值