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);
}