Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Multiset {
  2.  
  3.     constructor() {
  4.         this.elements_container = new Array()
  5.     }
  6.  
  7.  
  8.     add(element) {
  9.         this.elements_container.push(element)
  10.         let i = this.elements_container.length - 1;
  11.         while (i != 0 && this.elements_container[i] < this.elements_container[i - 1]) {
  12.             let temp = this.elements_container[i];
  13.             this.elements_container[i] = this.elements_container[i - 1];
  14.             this.elements_container[i - 1] = temp;
  15.             i -= 1;
  16.         }
  17.         console.log("Successfully added " + element);
  18.     }
  19.  
  20.  
  21.    remove(element) {
  22.         let i = 0;
  23.         while (i < this.elements_container.length && this.elements_container[i] != element)
  24.             i++;
  25.         if (i != this.elements_container.length) {
  26.             for (let j = i; j < this.elements_container.length - 2; j++)
  27.                 elements_container[j] = elements_container[j + 1];
  28.             console.log("Successfully removed " + element);
  29.         } else {
  30.             console.log("element " + element + " does not exist");
  31.          }
  32.     }
  33.  
  34.     toString(){
  35.         let result_of_operation = "";
  36.         for (let item = 0; item < this.elements_container.length; item++)
  37.             result_of_operation += this.elements_container[item].toString();
  38.         return result_of_operation;
  39.     }
  40.  
  41.  
  42.     union(multiset) {
  43.         let n = this.elements_container.length, m = multiset.elements_container.length;
  44.         let i = 0, k = 0, j = 0;
  45.         let temp_array = new Array();
  46.         while ((i < n) && (j < m)) {
  47.              if (this.elements_container[i] == multiset.elements_container[j]) {
  48.                 temp_array[k] = this.elements_container[i];
  49.                 k++;
  50.                 i++;
  51.                 j++;
  52.             } else {
  53.                 if (this.elements_container[i] < multiset.elements_container[j]) {
  54.                     temp_array[k] = this.elements_container[i];
  55.                     k++;
  56.                     i++;
  57.                 } else {
  58.                     temp_array[k] = multiset.elements_container[j];
  59.                     k++;
  60.                     j++;
  61.                 }
  62.             }
  63.         }
  64.         while (i < n) {
  65.             temp_array[k] = this.elements_container[i];
  66.             k++;
  67.             i++;
  68.         }
  69.         while (j < m) {
  70.             temp_array[k] = multiset.elements_container[j];
  71.             k++;
  72.             j++;
  73.         }
  74.         let temp_set = new Multiset();
  75.         temp_set.elements_container = temp_array;
  76.         return temp_set;
  77.     }
  78.  
  79.  
  80.     intersect(multiset) {
  81.         let n = this.elements_container.length, m = multiset.elements_container.length;
  82.         let i = 0, k = 0, j = 0;
  83.         let temp_array = new Array();
  84.         while ((i < n) && (j < m)) {
  85.             if (this.elements_container[i] == multiset.elements_container[j]) {
  86.                 temp_array[k] = this.elements_container[i];
  87.                 k++;
  88.                 i++;
  89.                 j++;
  90.             } else {
  91.                 if (this.elements_container[i] < multiset.elements_container[j]) {
  92.                     i++;
  93.                 } else {
  94.                     j++;
  95.                 }
  96.             }
  97.         }
  98.         let temp_set = new Multiset();
  99.         temp_set.elements_container = temp_array;
  100.         return temp_set;
  101.     }
  102.  
  103.  
  104.     equals(multiset) {
  105.         if (this.elements_container.length != multiset.elements_container.length)
  106.             return false;
  107.         for (let i = 0; i < multiset.elements_container.length; i++)
  108.             if (this.elements_container[i] != multiset.elements_container[i])
  109.                 return false;
  110.         return true;
  111.     }
  112.  
  113. }
  114.  
  115. let a = new Multiset()
  116. let b = new Multiset()
  117. a.add(5)
  118. a.add(5)
  119. a.add(34)
  120. b.add(1)
  121. b.add(8678)
  122. console.log(a.toString())
  123. console.log(b.toString())
  124. a = a.union(b)
  125. console.log(a.toString())
  126. console.log(a.equals(b))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement