数据结构---集合的表示

集合的表示及查找

  • 集合运算:交、并、补、差,判定一个元素是否属于某一集合。
  • 并差集:集合并、差某元素属于什么集合
  • 并查集中集合存储如何实现:
    (1)用树结构表示集合,树的每个节点代表一个集合元素。
    (2)采用数组存储形式:
  • 集合的查找:
typedef struct TreeNode* HuffmanTree;

struct TreeNode{
    int weight;
    HuffmanTree left, right;
};

HuffmanTree Huffman( MinHeap H )
{
    int i;
    HuffmanTree T;
    BuildMinHeap(H);
    for( i=1; i<H->size; i++)
    {
    T = malloc(sizeof(struct TreeNode));
    T->left = DeleteMin(H);
    T->right = DeleteMin(H);
    T->weight = T->left->weight + T->right->weight;
    Insert(H, T);
    }
    T = DeleteMin(H);
    return T;
}

集合的并运算

void Union( SetType S[], ElementType X1, ElementType X2)
{
    int Root1, Root2;
    Root1 = Find( S, X1);
    Root2 = Find( S, X2);
    if(Root1 != Root2) S[Root1].Parent = Root2;
}
发布了42 篇原创文章 · 获赞 6 · 访问量 1491

猜你喜欢

转载自blog.csdn.net/qq_41156733/article/details/100041720