- 一、概念
- 二、程序
- 三、练习
- 四、思考题
- 一、概念
- 二、程序
- 三、练习
- 四、思考题
- 一、概念
- 二、代码
- 三、练习
- 四、思考题
- 一、概念
- 二、代码
- 三、习题
- 四、思考题
- 一、题目描述
- 二、常规方法
- 三、常规方法的比较次数
- 四、方法改进一
- 五、第一次循环的可用信息
- 六、根据第一遍的可用信息作第二次循环
- 七、方法改进一的伪代码
- 八、方法改进一的比较次数
- 九、方法改进二
- 十、方法改进二的比较次数
- 十一、代码
- 一、概念
- 二、代码
- 三、练习
- 一、概念
- 二、代码
- 三、练习
- 一、概念
- 二、代码
- 三、练习
- 一、概念
- 二、练习
- 一、概念
- 二、代码
- 三、习题
- 一、概念
- 二、代码
- 三、练习
- 四、思考题
- 一、概念
- 二、代码
- 三、练习
- 四、思考题
- 一、概念
- 二、代码
- 三、练习
- 一、综述
- 二、代码
- 三、练习
- 一、综述
- 二、代码
- 三、练习
- 四、思考题
- 一、综述
- 二、活动选择问题
- 三、贪心策略的基本内容
- 四、哈夫曼编码
- 五、思考题
- 一、定义
- 二、代码
- 三、练习
- 四、思考题
- 一、概念
- 二、代码
- 三、练习
- 四、思考题
- 一、综述
- 二、理解
- 三、改进
- 四、代码
- 五、习题
- 四、思考题
- 一、综述
- 二、代码
- 三、练习
- 四、思考题
- 一、综述
- 二、代码
- 三、练习
- 一、综述
- 二、代码
- 三、练习
- 一、综述
- 二、代码
- 三、练习
- 一、综述
- 二、代码
- 三、练习
- 一、综述
- 二、代码
- 三、练习
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
三、练习
21.1 不相交集合上的操作
21.1-1
Input:d i
Output:a b c e f g h i j k
Input:f k
Output:a b c e g h i j k
Input:g i
Output:a b c e h i j k
Input:b g
Output:a c e h i j k
Input:a h
Output:c e h i j k
Input:i j
Output:c e h i k
Input:d k
Output:c e h i
Input:b j
Output:c e h i
Input:d f
Output:c e h i
Input:g j
Output:c e h i
Input:a e
Output:c h i
Press any key to continue
21.1-3
FIND-SET 2|E|次
UNION |E|次
21.2 不相交集合的链表表示
21.2-1
void Make_Set(int x)
{
S[x].head = x;
S[x].tail = x;
S[x].size = 1;
n[x].rep = x;
n[x].next = 0;
}
int Find_Set(int x)
{
return n[x].rep;
}
void Union(int x, int y)
{
x = n[x].rep;
y = n[y].rep;
if(S[x].size >S[y].size)
swap(x, y);
n[S[y].tail].next = S[x].head;
S[y].size = S[y].size + S[x].size;
int i;
for(i = S[x].head; i != 0; i = n[i].next)
n[i].rep = y;
S[x].head = 0;
}
21.2-2
16
16
21.2-5
void Union2(int x, int y)
{
x = n[x].rep;
y = n[y].rep;
if(x == y)
return ;
if(S[x].size >S[y].size)
swap(x, y);
S[y].size = S[y].size + S[x].size;
int i;
for(i = S[x].head;; i = n[i].next)
{
n[i].rep = y;
if(n[i].next == 0)
{
n[i].next = n[S[y].head].next;
break;
}
}
n[S[y].head].next = S[x].head;
S[x].head = 0;
}
21.3 不相交集合森林
21.3-2
void UFS::Find_Set2(int x)
{
int ret = x, t;
while(ret != p[ret])
ret = p[ret];
while(p[x] != ret)
{
t = p[x];
p[x] = ret;
x = p[x];
}
}
21.3-3
题目的意思不懂
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论