js版数据结构_05集合(1)

js版数据结构_05集合(1)

ps : 集合这种数据结构相对比较简单,所以就不用过多写些解释了

本篇博客知识点

  • 集合的基本概念
  • 功能实现

1. 什么是集合

集合:由一组无序且唯一的项组成,它与数学中集合的概念基本相同。
以数学中的集合为例:
如:一个由大于或等于 0 的整数组成的自然数集合: N = {0, 1, 2, 3, 4, 5, 6, …}
集合这个数据结构相比于与链表好理解很多,同时这里集合的基本运算也同与数学。即并集、交集、差集等(运算在下篇实现)

开始实现集合类:

class Set {
            constructor() {
                this.items = {};
            }
            }

这里还是使用对象来存储数据,好处之一在于一个键指向两个不同的属性值,即保证了元素各自的唯一性。
这里要实现的功能:

  • add(element):向集合添加一个新元素。
  • delete(element):从集合移除一个元素。
  • has(element):如果元素在集合中,返回 true,否则返回 false。
  • clear():移除集合中的所有元素。
  • size():返回集合所包含元素的数量。它与数组的 length 属性类似。
  • values():返回一个包含集合中所有值(元素)的数组

2. 功能实现

has(e)

has(e) {
                return e in this.items;
            }

add(e)

 add(e) {
                // 先判是否有元素
                if (!this.has(e)) {
                    this.items[e] = e;
                    return true;
                }
                return false;
            }

delete(e)

    delete(e) {
                // 先判是否有
                if (this.has(e)) {
                    delete this.items[e];

                    return true;
                }
                return false;
            }

clear()

   clear() {
                //直接将this.items指向一个空对象
                this.items = {};
            }

size()

  size() {
                return Object.keys(this.items).length;
            }

value()

扫描二维码关注公众号,回复: 11278771 查看本文章
 value() {
                return Object.values(this.items);
            }

猜你喜欢

转载自blog.csdn.net/qq_41086511/article/details/105510702