求解集合A与B的差集
已知集合A和B的元素分别用不含头结点的单链表存储,函数difference( )用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。
#include<stdio.h>
struct
node{
int
elem;
struct
node* next;
};
/*
本题的解法思路较简单:
因为要求集合A和集合B的差集(A-B),结果保存在集合A中.
所以我们取出集合A中每一个元素,然后在集合B中寻找(代码22行所实现) 找到即删除此节点 否则保留
此时while循环跳出只有两种情况,pb为NULL或者 pa->elem==pb->elem
当pb不为null时,即找出集合A和集合B的公有元素,此时要删除这个元素
pre(实现删除节点之后的链接)
当pre为NULL时,说明是首次找到A和B的公有元素,此时 *LA指向pa->next 所以*LA仍然是头结点
当pre不为NULL时, pre指向pa->next,顺利实现删除节点的链接
*/
void
difference(node** LA,node* LB){
node*pa,*pb,*pre,*q;
pre=NULL;
pa=*LA;
/*LA是指向指针的指针,pa指向集合的元素*/
while
(pa){
pb=LB;
/*pb指向集合B的元素*/
while
(pb && pa->elem!=pb->elem)
/*在链表LB中寻找与pa所指元素相等的节点*/
pb=pb->next;
if
(pb){
/*pa所指元素与pb所指元素相等*/
if
(!pre){
*LA=pa->next;
}
else
{
pre->next=pa->next;
}
q=pa;
/*求差集 所以要删除pa节点*/
pa=pa->next;
free
(q);
}
else
{
pre=pa;
pa=pa->next;
}
}
}
求解集合A与B的差集相关推荐
- python两个集合的交集 合集 差集
python两个集合的交集 合集 差集 https://blog.csdn.net/qq_17753903/article/details/84899612 python & | and or ...
- ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。②集合A、B的差集③对分行输入的若干字符串按字典序(由小到大)进行排序并输出。
文章目录 ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符 ②集合A.B的差集 ③对分行输入的若干字符串按字典序(由小到大)进行排序并输出. ①编写一个程序,从 ...
- 求差集(C语言)两个集合的差集定义如下:集合A、B的差集,由所有属于A但不属于B的元素构成。输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。
[问题描述] 两个集合的差集定义如下: 集合A.B的差集,由所有属于A但不属于B的元素构成. 输入两个集合A.B,每个集合中元素都是自然数.求集合A.B的差集. [输入形式] 从标准输入先输入集合元素 ...
- matlab求解集合覆盖问题,贪心算法实践之集合覆盖问题
介绍 贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法 贪婪算法所得到的结果不一定是最优的结果(有时候会是最优解 ...
- 集合交集,并集,差集运算
举例 class User {private Long cardId;private Long deviceId;public User(Long cardId, Long deviceId) {th ...
- Java中求集合交集、并集、差集
前言 如果是自定义类,需要重写equals方法,如果使用Set集合,还需要重写hashCode方法:如下以User为例子: public class User{private Integer id;p ...
- 分治法求解集合的众数及其重数
1. 分治法 分治法解题过程主要分为分.治.合三个步骤",应用该方法的基本过程如下: (1) 将原问题分解为若干个规模较小的子问题 (2) 对这些子问题分别求解 (3) 对各个子问题的解进行 ...
- python set集合 交集,并集,差集,对称差集
set集合测试打印如下: setA={1,2,3,4} setB={3,4,5,6} print(setA-setB) >>> {1, 2} - 取差集 print(setB-set ...
- set集合及(交集,差集,并集)计算
一.set集合的概述 set是与list.Queue同级的集合. Set集合类似于一个罐子,程序可以依次把多个对象"丢进"Set集合,而Set集合通常不能记住元素的添加顺序.实际上 ...
最新文章
- sudo apt-get install 报无法获得锁
- C++构造函数调用虚函数的后果
- 【spring-session】 1.x与2.x 不兼容
- Java堆排序递归_大顶堆第二弹----堆排序(递归实现)
- JavaScript 温故知新 00
- 【人体姿态估计2】Real-time Multi-person 2d pose estimation using part affinity fields_2017
- 实际的Reactor操作–检索Cloud Foundry应用程序的详细信息
- 【逆强化学习-2】最大熵学习(Maximum Entropy Learning)
- C++/C--C++中substr和Java的substring对比【转载】
- amp;#9733;《唐琅探案》后记【3】
- 百家讲坛全集免费下载
- index函数python查询所有_Python List index()方法
- 【dgl框架】dgl.metapath_reachable_graph函数解析
- 【前端用法】html5实现地理位置定位(JS获取当前地理位置的方法)
- python中如何解决类互相调用问题_两个.py之间类的相互调用问题
- python计算圆周率_python模拟蒙特·卡罗法计算圆周率
- 【C语言培训2】 前言 C语言程序设计课程介绍
- python过去电脑网关不可用怎么办_住宅网关不可用
- 【云杂谈】《公共云被用于黑客和恐怖活动的风险》
- 用python制作文本编辑器
热门文章
- 2020年创业公司到底过得怎么样?数据分析来为你揭晓
- 【全军覆没】麻省理工把中国学生拉入黑名单,斯坦福取消中国大陆面试! 这是怎么了?...
- 五一惠州双月湾游,海滩,帐篷,野营,烧烤、篝火晚会
- 对比图像分类五大方法:KNN、SVM、BPNN、CNN和迁移学习
- R和RStudio下载安装详细步骤
- 极兔速递完成17.35亿美元融资?回应:不实消息
- 王者荣耀回应服务器崩了:已处理完成 将陆续补发相应赔偿
- 于谦加盟高德地图 推出“哪儿都熟”相声导航
- keep公众号就“借鉴”原创文章致歉:将停更一周
- 上海新阳半导体收到ASML-1400光刻机 将用于研发193nm ArF光刻胶