码迷,mamicode.com
首页 > Web开发 > 详细

js:数据结构笔记8--集合

时间:2014-10-17 21:54:07      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   os   ar   java   for   strong   sp   

集合:唯一性,无序性;

基本结构:

 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

 

js:数据结构笔记8--集合

标签:blog   http   io   os   ar   java   for   strong   sp   

原文地址:http://www.cnblogs.com/jinkspeng/p/4032022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!