Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Multiset {
- constructor() {
- this.elements_container = new Array()
- }
- add(element) {
- this.elements_container.push(element)
- let i = this.elements_container.length - 1;
- while (i != 0 && this.elements_container[i] < this.elements_container[i - 1]) {
- let temp = this.elements_container[i];
- this.elements_container[i] = this.elements_container[i - 1];
- this.elements_container[i - 1] = temp;
- i -= 1;
- }
- console.log("Successfully added " + element);
- }
- remove(element) {
- let i = 0;
- while (i < this.elements_container.length && this.elements_container[i] != element)
- i++;
- if (i != this.elements_container.length) {
- for (let j = i; j < this.elements_container.length - 2; j++)
- elements_container[j] = elements_container[j + 1];
- console.log("Successfully removed " + element);
- } else {
- console.log("element " + element + " does not exist");
- }
- }
- toString(){
- let result_of_operation = "";
- for (let item = 0; item < this.elements_container.length; item++)
- result_of_operation += this.elements_container[item].toString();
- return result_of_operation;
- }
- union(multiset) {
- let n = this.elements_container.length, m = multiset.elements_container.length;
- let i = 0, k = 0, j = 0;
- let temp_array = new Array();
- while ((i < n) && (j < m)) {
- if (this.elements_container[i] == multiset.elements_container[j]) {
- temp_array[k] = this.elements_container[i];
- k++;
- i++;
- j++;
- } else {
- if (this.elements_container[i] < multiset.elements_container[j]) {
- temp_array[k] = this.elements_container[i];
- k++;
- i++;
- } else {
- temp_array[k] = multiset.elements_container[j];
- k++;
- j++;
- }
- }
- }
- while (i < n) {
- temp_array[k] = this.elements_container[i];
- k++;
- i++;
- }
- while (j < m) {
- temp_array[k] = multiset.elements_container[j];
- k++;
- j++;
- }
- let temp_set = new Multiset();
- temp_set.elements_container = temp_array;
- return temp_set;
- }
- intersect(multiset) {
- let n = this.elements_container.length, m = multiset.elements_container.length;
- let i = 0, k = 0, j = 0;
- let temp_array = new Array();
- while ((i < n) && (j < m)) {
- if (this.elements_container[i] == multiset.elements_container[j]) {
- temp_array[k] = this.elements_container[i];
- k++;
- i++;
- j++;
- } else {
- if (this.elements_container[i] < multiset.elements_container[j]) {
- i++;
- } else {
- j++;
- }
- }
- }
- let temp_set = new Multiset();
- temp_set.elements_container = temp_array;
- return temp_set;
- }
- equals(multiset) {
- if (this.elements_container.length != multiset.elements_container.length)
- return false;
- for (let i = 0; i < multiset.elements_container.length; i++)
- if (this.elements_container[i] != multiset.elements_container[i])
- return false;
- return true;
- }
- }
- let a = new Multiset()
- let b = new Multiset()
- a.add(5)
- a.add(5)
- a.add(34)
- b.add(1)
- b.add(8678)
- console.log(a.toString())
- console.log(b.toString())
- a = a.union(b)
- console.log(a.toString())
- console.log(a.equals(b))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement