zoukankan      html  css  js  c++  java
  • js:数据结构笔记8--集合

    集合:唯一性,无序性;

    基本结构:

     function Set () {
       this.dataStore = [];
       this.add = add;
       this.remove = remove;
       this.contains =contains;
       this.show = show; 
     }
     function contains(data) {
      var pos = this.dataStore.indexOf(data);
      if(pos > -1) {
        return true;
      } else {
        return false;
      }
     }
     function add(data) {
       var pos = this.dataStore.indexOf(data);
       if( pos < 0) {
         this.dataStore.push(data);
         return true;
       } else {
         return false;
       }
     }
     function remove(data) {
       var pos = this.dataStore.indexOf(data);
       if(pos > -1) {
         this.dataStore.splice(pos,1);
         return true;
       } else {
         return false;
       }
     }
     function show() {
       console.log(this.dataStore);
     }
    

    操作:demo

     集合的基本操作:并集,交集,补集;

    并集:

    新增:
     function union(set) {
        var tempSet = new Set();
        for(var i = 0; i < this.dataStore.length; ++i) {
          tempSet.add(this.dataStore[i]);
        }
        for(var i = 0; i < set.dataStore.length; ++i) {
          var setData = set.dataStore[i];
          if(!tempSet.contains(setData)) {
            tempSet.dataStore.push(setData);
          }
        }
        return tempSet;
     }
    

    操作: demo;

    交集:

    新增:
     function intersect(set) {
      var tempSet = new Set();
      for(var i = 0; i < this.dataStore.length; ++i) {
        var thisData = this.dataStore[i];
        if(set.contains(thisData)) {
          tempSet.add(thisData);
        }
      }
      return tempSet;
     }

    操作: demo;

     补集:

    新增:
    
     function difference(set) {
      var tempSet = new Set();
      for(var i = 0; i < this.dataStore.length; ++i) {
        var thisData = this.dataStore[i];
        if(!set.contains(thisData)) {
          tempSet.add(thisData);
        }
      }
      return tempSet;
     }
    

    父集判断:

    新增:
     function size() {
      return this.dataStore.length;
     }
     function subset(set) {
       if(this.size() > set.size()) {
          return false;
       } else {
        for(var i = 0; i < this.dataStore.length; ++i) {
          var thisData = this.dataStore[i];
          if(!set.contains(thisData)) {
            return false;
          }
        }
       }
       return true;
     }
    

     操作:demo

  • 相关阅读:
    Python学习笔记(6)-异常
    Python学习笔记(1)-基本概念
    自动化测试工具Sikuli的安装以及应用
    SoapUI添加断言
    SoapUI接口之间的数据传递
    Fitnesse初体验
    SoapUI5.1.2命令行执行https类型接口集成
    SoapUI命令行执行测试用例
    Jenkins集成AirTest不启动浏览器
    AirTest执行时不能输入汉字
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4032022.html
Copyright © 2011-2022 走看看