数据结构—集合的表示

  • Post author:
  • Post category:其他




集合的表示及查找

  • 集合运算:交、并、补、差,判定一个元素是否属于某一集合。
  • 并差集:集合并、差某元素属于什么集合

  • 并查集中集合存储如何实现:


    (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;
}



版权声明:本文为qq_41156733原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。