题目内容 (请给出正确答案)
[主观题]

试设计并实现不相交集合类结构,并写出union和find算法。 集合S上的等价关系R指的是满足自反、对称、传递性质

试设计并实现不相交集合类结构,并写出union和find算法。

集合S上的等价关系R指的是满足自反、对称、传递性质的关系,S中具有等价关系R的元素构成的子集称为等价类,S中所有的等价类构成了集合S的一个划分:S中的每一个元素都在且仅在一个等价类中(等价类之间不相交)。

等价类(集合)作为一种抽象数据类型可以定义两种基本操作:find和union。对于S中的元素x,find(x)返回元素x的等价类名;union(i,j)执行的操作是将等价类i和等价类j合并成一个新的等价类。如果要把(a,b)添加到等价关系R中,即定义S中的元素a和b等价,根据等价关系的定义,实际上是将a所在的等价类和b所在的等价类合并。因此首先要分别对a和b进行find操作,看它们是否在同一个等价类。如果它们不在同一个等价类,则执行union(find(a),find(b))操作,将a和b所在的两个等价类合并为一个新的等价类。这样的操作改变了S的划分方法。

提问人:网友anonymity 发布时间:2022-01-06
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
更多“试设计并实现不相交集合类结构,并写出union和find算法…”相关的问题
第1题
问题描述:给定平面XOY上n个开线段组成的集合I和一个正整数k,试设计一个算法,从开线段集合I中选取出开线段集合,使得在X轴上的任何一点p,S中与直线x=p相交的开线段个数不超过k,且达到最大.这样的集合S称为开线段集合的最长k可重线段集,称为最长k可重线段集的长度.

对于任何开线段z,设其端点坐标为(x0,y0)和(x1,y1),则开线段z的长度定义为

算法设计:对于给定的开线段集合I和正整数k.计算开线段集合I的最长k可重线段集的长度.

数据输入:由文件input.txt提供输入数据.文件的第1行有2个正整数n和k,分别表示开线段的个数和开线段的可重叠数.接下来的n行,每行有4个整数,表示开线段的2个端点坐标.

结果输出:将计算的最长k可重线段集的长度输出到文件output.txt.

点击查看答案
第2题
给定n个不等的整数构成的集合L和整数s,设计一个算法判断在L中是否存在两个整数x和y(x < y),满足x + y = s,以加法运算作为基本运算分析你的算法在最坏情况下的时间复杂度。
点击查看答案
第3题
下列关于集合查询的说法正确的是( )。

A、集合查询的结果不会自动去除重复的元组。

B、任意两个select语句都可以用来表达集合查询。

C、两个参与集合查询的select语句中,查询结果只要具备相同的属性名即可。

D、两个参与集合查询的select语句中,查询结果不仅要具备相同的属性名,而且属性名的排列顺序也要一致。

点击查看答案
第4题
给定一有向图的邻接表如下。从顶点V1出发按深度优先搜索法进行遍历,则得到的顶点序列为( )。 6题图.png

A、V1,V2,V3,V4,V7,V6,V5

B、V1,V5,V4,V7,V6,V2,V3

C、V1,V5,V6,V4,V7,V2,V3

D、V1,V5,V4,V7,V6,V3,V2

点击查看答案
第5题
定义一个元索类型为int、元素个数不受限制的集合类Set.除了定义一些必要的函数外,还定义具有下列功能的成员函数。

●bool IsEmpty():判断集合是否为空;

●int size():返回元素个数:

●bool IsElement(int e) const: 判断e是否属于集合:

●bool IsSubset( const Set&. s)const: 判断s是否包含于集合:

●bool IsEqual(const Set&. s)const: 判断集合是否相等;

●Set&. insert(int e):将e加入到集合中;

●Set union(const Set&. s) const:求集合的并:

●Set intersection(const Set& s) const:求集合的交;

●Set difference(const Set& s) const: 求集合的差。

点击查看答案
第6题
下面说法错误的是( )。

A、SELECT语句是SQL的核心语句,它完成查询功能。

B、要查询一个表的所有字段数据,可以使用*匹配,也可以列出表的所有字段。

C、在MySQL中目前查询表中的记录除了使用SELECT语句,还可以使用show语句。

D、SELECT语句中可以使用AS关键字指定表名的别名或字段的别名,AS关键字也可以省略不写。

点击查看答案
第7题
试根据全年级学生的姓名,构造一个散列表,选择适当的散列函数和解决碰撞方法,设计并实现插入、删除和查找算法,统计碰撞发生的次数(用拉链法解决碰撞时负载因子取2,用开地址法时取1/2)。
点击查看答案
第8题
构造散列表,采用开地址法处理冲突,根据下面公式计算下一地址:

d1=H(key)=3*key%11

di=(di-1+(7*key))%11  (i=2,3,…)

试在0~10的散列地址空间中对关键字序列(22,41,53,46,30,13,01,67)构造散列表,求等概率情况下查找成功的平均查找长度,并设计生成这个散列表的完整的函数。

点击查看答案
第9题
设计一种散列法表示的字典存储方法,适合使用拉链法解决碰撞,给出在这种存储结构中实现字典元素的插入和删除算法。
点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信