zoukankan      html  css  js  c++  java
  • 数据结构与算法之集合

        function Set(){
                this.items={};
            }
    
            Set.prototype={
                add:function(value){
                    if(!this.has(value)){
                        this.items[value] = value;
                        return true;
                    }
                    return false;
                },
                remove:function(value){
                    if(this.has(value)){
                        delete this.items[value];
                        return true;
                    }
                    return false;
    
                },
                has:function(value){
                    //return value in this.items;
                    return this.items.hasOwnProperty(value);
                },
                clear:function(){
                    this.items = {};
                },
                size:function(){
                    return Object.keys[this.items].length;
                    // var count = 0;
                    // for(var prop in this.items){
                    //     if(this.items.hasOwnProperty(prop)){
                    //         ++count;
                    //     }
                    // }
                    // return count;
                },
                values:function(){
                    return Object.keys(this.items);
                },
                //并集
                union:function(otherSet){
                    var unionSet  = new Set();
                    var values = this.values();
                    for(var i=0;i<values.length;i++){
                        unionSet.add(values[i]);
                    }
                    values = otherSet.values();
                    for(var i=0;i<values.length;i++){
                        unionSet.add(values[i]);
                    }
                    return unionSet;
                },
                //交集
                intersection:function(otherSet){
                    var intersectionSet = new Set();
                    var values = this.values();
                    for(var i=0;i<values.length;i++){
                        if(otherSet.has(values[i])){
                            intersectionSet.add(values[i]);
                        }
                    }
                    return intersectionSet;
                },
                //差集
                difference:function(otherSet){
                    var differenceSet = new Set();
                    var values = this.values();
                    for(var i=0;i<values.length;i++){
                        if(!otherSet.has(values[i])){
                            differenceSet.add(values[i]);
                        }
                    }
                    return differenceSet;
                },
                //子集
                subset:function(otherSet){
                    if(this.size()>otherSet.size()){
                        return false;
                    } else {
                        var values = this.values();
                        for(var i=0;i<values.length;i++){
                            if(!otherSet.has(values[i])){
                                return false;
                            }
                        }
                        return true;
                    }
    
                }
            };
  • 相关阅读:
    OO系统分析员之路用例分析系列(3)业务建模之涉众
    Case study—Courseware Management System
    Creating the Use Case Diagram
    ODBC
    Class Diagram
    OO系统分析员之路用例分析系列(2)用例的类型与粒度
    Cache Object Script语言(转载)
    无法在web服务器上启动调试.
    Abbreviation
    发布订阅原理
  • 原文地址:https://www.cnblogs.com/kerryw/p/8338257.html
Copyright © 2011-2022 走看看