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;
                    }
    
                }
            };
  • 相关阅读:
    基于node.js 的 websocket的移动端H5直播开发
    c# 基于RTMP推流 PC+移动端 拉流播放
    Android Studio解决Error:moudle not specified
    能ping通域名,却不能上网
    转 Postman访问Webapi的Get/Post/Put/Delte请求
    Sqlite 参数化 模糊查询 解决方案
    autofac使用总结
    windows7 安装pytorch
    linux nginx 如何配置多个端口
    委托应用实例演变
  • 原文地址:https://www.cnblogs.com/kerryw/p/8338257.html
Copyright © 2011-2022 走看看