美文网首页
5.3 集合及运算

5.3 集合及运算

作者: 编程半岛 | 来源:发表于2018-06-20 09:35 被阅读3次

1. 集合的表示

2. 集合的运算

  1. 查找某个元素所在的集合(用根结点表示)
// 在数组S中查找值为X的元素所属的集合,即返回根结点的下标
// MaxSize为全局变量,为数组S的最大长度
int Find( SetType S[], ElementType X)
{
    int i;
    for(i=0; i<MaxSize && S[i].Data != X; i++);
    if( i >= MaxSize )
    {
        return -1;      // 未找到X,返回-1
    }
    for(; S[i].Parent >= 0; i = S[i].Parent);
    return i    // 找到X所属的集合,返回树根结点在数组S中的下标
}
  1. 集合的并运算
  • 分别找到x1和x2两个元素所在集合树的根结点
  • 如果它们不同根,则将其中一个根结点的父结点指针设置成另一个根结点的数组下标
void Union(SetType S[], ElementType x1, ElementType x2)
{
    int Root1, Root2;
    Root1 = Find(S, x1);
    Root2 = Find(S, x2);
    if (Root1 1= Root2)
    {
        S[Root2].Parent = Root1;    // 将x2根结点的父结点指针设置成x1的根结点
    }
}

按照以上代码执行后,可能会导致树的深度增加,从而降低查找效率


修改根结点Parent的值,将其记录为-(树的深度)

相关文章

  • 5.3 集合及运算

    1. 集合的表示 2. 集合的运算 查找某个元素所在的集合(用根结点表示) 集合的并运算 分别找到x1和x2两个元...

  • 理解php中的?:与??

    三元运算符(?:) php 5.3 空合并运算符(??)php 7

  • sql server集合运算

    集合运算包含四种:1.并集运算2.交集运算3.差集运算 为什么使用集合运算:1.在集合运算中比联接查询和EXIST...

  • 第八章: 集合运算

    第八章: 集合运算 • 集合运算:是用来把两个或多个查询的结果集做并、交、差的集合运算,包含集合运算的查询称为复合...

  • 3.集合的运算(续)

    引入集合的运算(目的)——新集合 | 简化运算 运算规律&不同运算之间的规律 交的并=并的交

  • oracle学习笔记七——查询之集合运算

    七.集合运算 可以根据下图图示并文字理解集合运算集合运算示意图(1)union/union all 并集--uni...

  • 5.3数组运算

    slice 改变数组的形状obj.reshape(shape): return a new ndarrayobj....

  • java 学习规划

    位运算 % & | x++ ++x运算 集合-list 、ArrayList、 LinkedList、集合 Has...

  • 说说SQL的“非”

    获取所有非manager的员工emp_no -- EXCEPT 集合差运算 -- UNION 集合并运算 ...

  • KVC中的集合运算符

    简单实用的集合运算符 KVC中的集合运算符有以下三类: 1、简单集合运算符:@avg、@sum、@max、@min...

网友评论

      本文标题:5.3 集合及运算

      本文链接:https://www.haomeiwen.com/subject/debzeftx.html