数据结构5--集合

集合中的元素:无序,不能重复
集合类似于set

//封装set
function Set(){
    this.items = {}

    //查找
    Set.prototype.has = function(value){
        return this.items.hasOwnProperty(value);
    }
    //添加
    Set.prototype.add= function(value){
        if(this.has(value)) return false;

        this.items[value] =value;
    }
    //删除
    Set.prototype.del = function (value) {
        if(!this.has(value)) return false;
        delete this.items[value];

    }
    //清空集合
    Set.prototype.clear = function(){
        this.items ={}
    }
    //集合长度
    Set.prototype.size = function () {
        return Object.keys(this.items).length
    }
    //获取集合中元素的值
    Set.prototype.getValue = function () {
        return Object.values(this.items);
    }
}

let set = new Set();
set.add('aaa');
set.add('bbb');
console.log(set);//Set { items: { aaa: 'aaa', bbb: 'bbb' } }
console.log(set.has('aaa'));//true
console.log(set.size());//2
console.log(set.getValue());//[ 'aaa', 'bbb' ]

集合并集

将两个集合中,不重复的元素添加到一个新的集合中

//封装set
function Set(){
    this.items = {}

    //查找
    Set.prototype.has = function(value){
        return this.items.hasOwnProperty(value);
    }
    //添加
    Set.prototype.add= function(value){
        if(this.has(value)) return false;

        this.items[value] =value;
    }
    //删除
    Set.prototype.del = function (value) {
        if(!this.has(value)) return false;
        delete this.items[value];

    }
    //清空集合
    Set.prototype.clear = function(){
        this.items ={}
    }
    //集合长度
    Set.prototype.size = function () {
        return Object.keys(this.items).length
    }
    //获取集合中元素的值
    Set.prototype.getValue = function () {
        return Object.values(this.items);
    }

    /*
    并集:将两个集合中的元素添加到一个新集合中
     */
    Set.prototype.unionSet = function (setB) {
        let newSet = new Set();
        let values = this.getValue();//获取集合A中所有属性值
        for(let i=0;i

集合交集

//封装set
function Set(){
    this.items = {}

    //查找
    Set.prototype.has = function(value){
        return this.items.hasOwnProperty(value);
    }
    //添加
    Set.prototype.add= function(value){
        if(this.has(value)) return false;

        this.items[value] =value;
    }
    //删除
    Set.prototype.del = function (value) {
        if(!this.has(value)) return false;
        delete this.items[value];

    }
    //清空集合
    Set.prototype.clear = function(){
        this.items ={}
    }
    //集合长度
    Set.prototype.size = function () {
        return Object.keys(this.items).length
    }
    //获取集合中元素的值
    Set.prototype.getValue = function () {
        return Object.values(this.items);
    }

    /*
    交集:将两个集合中共同的元素添加到新的集合中
     */
    Set.prototype.intersection = function (setB) {
        let newSet = new Set();
        let values = this.getValue();
        for(let i = 0 ; i

集合差集

//封装set
function Set(){
    this.items = {}

    //查找
    Set.prototype.has = function(value){
        return this.items.hasOwnProperty(value);
    }
    //添加
    Set.prototype.add= function(value){
        if(this.has(value)) return false;

        this.items[value] =value;
    }
    //删除
    Set.prototype.del = function (value) {
        if(!this.has(value)) return false;
        delete this.items[value];

    }
    //清空集合
    Set.prototype.clear = function(){
        this.items ={}
    }
    //集合长度
    Set.prototype.size = function () {
        return Object.keys(this.items).length
    }
    //获取集合中元素的值
    Set.prototype.getValue = function () {
        return Object.values(this.items);
    }

    /*
    差集:将只存在集合A而不存在于集合B的元素添加到新的集合中
     */
    Set.prototype.differentSet = function (setB) {
        let newSet = new Set();
        let values = this.getValue();
        for(let i = 0 ; i

集合子集

集合A是集合B的子集

//封装set
function Set(){
    this.items = {}

    //查找
    Set.prototype.has = function(value){
        return this.items.hasOwnProperty(value);
    }
    //添加
    Set.prototype.add= function(value){
        if(this.has(value)) return false;

        this.items[value] =value;
    }
    //删除
    Set.prototype.del = function (value) {
        if(!this.has(value)) return false;
        delete this.items[value];

    }
    //清空集合
    Set.prototype.clear = function(){
        this.items ={}
    }
    //集合长度
    Set.prototype.size = function () {
        return Object.keys(this.items).length
    }
    //获取集合中元素的值
    Set.prototype.getValue = function () {
        return Object.values(this.items);
    }

    /*
    差集:将只存在集合A而不存在于集合B的元素添加到新的集合中
     */
    Set.prototype.subSet = function (setB) {
        let values = this.getValue();
        for(let i = 0 ; i

你可能感兴趣的:(数据结构)