链表求交集、并集和差集
C语言建立链表,输入集合A和集合B,求集合A和B的交集、并集和差集;
求交集写了两种,一种是求两个非递减集合的交集,另一种是无序集合
以下是打代码块
#include <stdio.h>
#include <stdlib.h>
int ans;
typedef struct Lnode{
int data;
struct Lnode *next;
}Lnode,*LinkList;
//链表初始化
LinkList InitList(LinkList L,int n){
int data;
L = (LinkList)malloc(sizeof(Lnode));
//建立头结点
L->next = NULL;
//定义一个head指向L的头部
LinkList head = L;
for(int i = 0;i < n;i++){
LinkList p = (LinkList)malloc(sizeof(Lnode));
scanf("%d",&data);
p->data = data;
p->next = L->next;
L->next = p;
L=L->next;
}
return head;
}
//插入数据
LinkList InsertList(LinkList L,int i,int data){
LinkList head = L;
//标记插入的位置
int mark = 1;
while(L){
if(mark == i){
LinkList p = (LinkList)malloc(sizeof(Lnode));
p->data = data;
p->next = L->next;
L->next = p;
free(p);
break;
}
mark++;

这篇博客介绍了如何使用C语言创建链表,并实现两个链表的交集、并集和差集的计算。提供了有序和无序集合的交集算法,以及直接修改原链表的差集操作和新建链表存储差集的方法。此外,还包括了链表的插入、查找和删除功能。
最低0.47元/天 解锁文章
1885





