数据结构与算法之集合

2020-12-13 02:10

阅读:347

标签:diff   script   const   组成   sub   show   直接   union   contains   

集合

集合(set) 是一种包含不同元素的数据结构。 集合中的元素称为成员。

集合的两个最重要特性是: 首先, 集合中的成员是无序的; 其次, 集合中不允许相同成员存在。

对集合的三个操作

  • 并集

    将两个集合中的成员进行合并, 得到一个新集合。

  • 交集

    两个集合中共同存在的成员组成一个新的集合。

  • 补集

    属于一个集合而不属于另一个集合的成员组成的集合。

直接上代码。还是用ES6原生的Set比较方便。

function Set(){
    this.dataStore = [];
}

Set.prototype = {
    constructor: Set,
    add(data){
        if(this.dataStore.indexOf(data) -1){
            this.dataStore.splice(pos, 1);
            return true;
        }else{
            return false;
        }
    },
    size(){
        return this.dataStore.length;
    },

    //执行并集操作,不影响操作的两个set,返回一个新的set
    union(set){
        var tempSet = new Set();
        for(var i = 0;i set.size()) return false;
        for(var i of this.dataStore){
            if(!set.contains(i)) return false;
        }
        return true
    },

    //执行补集操作,保存属于本set不属于传参set的成员
    difference(set){
        var tempSet = new Set();
        for(var i of this.dataStore){
            if(!set.contains(i)){
                tempSet.add(i);
            }
        }
        return tempSet;
    },
    show(){
        return this.dataStore;
    },
    contains(data){
        return this.dataStore.indexOf(data) > -1;
    }
}

数据结构与算法之集合

标签:diff   script   const   组成   sub   show   直接   union   contains   

原文地址:https://www.cnblogs.com/simpul/p/11027184.html


评论


亲,登录后才可以留言!