add(elem) { if (this.arr.length == this.size) { console.log("Array is full") return } this.arr[this.elems++] = elem returntrue }
find(elem) { for (let i = 0, len = this.elems; i < len; i++) { if (this.arr[i] == elem) return i } return -1 }
delete(elem) { let index = this.find(elem) if (index == -1) { console.log("Element not found") return } for (let i = index, len = this.elems - 1; i < len; i++) this.arr[i] = this.arr[i + 1] this.elems-- returntrue }
update(oldVal, newVal) { // only use for unique element let index = this.find(oldVal) if (index == -1) { console.log("Element not found") return } this.arr[index] = newVal returntrue }
display() { let srt = "" for (let i = 0, len = this.elems; i < len; i++) { srt += "" + this.arr[i] + " " } console.log(srt) }
用集合中的某个元素来代表这个集合,该元素称为集合的代表元。 一个集合内的所有元素组织成以代表元为根的树形结构。 对于每一个元素parent[x]指向 x 在树形结构上的父亲节点。如果 x 是根节点,则令parent[x] = x。 对于查找操作,假设需要确定 x 所在的的集合,也就是确定集合的代表元。可以沿着parent[x]不断在树形结构中向上移动,直到到达根节点。