Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1.  
  2.  
  3. Bag(){
  4.   this.size = 0;
  5.   this.impl = Monoid();
  6. }
  7.  
  8. void BagInsert(Bag S, int item){
  9.   int k = 0;
  10.   pennant x = pennant(item);
  11.   while(S.p[k] != NULL){
  12.     x = pennantUnion((S.p[k],x);
  13.     S.p[k++] = NULL;
  14.   }      
  15.   S.p[k] = x;
  16. }
  17.  
  18. Bag Bagplit(Bag S1){
  19.   Bag S2;
  20.   pennant y = S1.p[0];
  21.   S1.p[0] = NULL;
  22.   for (int i = 1; i < S1.size; i++){
  23.     if (S1.p[i] != NULL){
  24.       S2.p[i-1] = pennantSplit(S1.p[i]);
  25.       S1.p[i-1] = S1.p[i];
  26.       S1.p[i] = NULL;
  27.     }
  28.   }
  29.  
  30.   if (y != NULL){
  31.     Bag Insert(S1, y);
  32.   }
  33.   return S2;
  34. }
  35.  
  36.  
  37. void Union(Bag S1, Bag S2){
  38.     pennant y = NULL;
  39.     for (int i = 0; i < MAXSIZE; i++){
  40.       if(S1->p[i] == NULL && y == NULL && S2->p[i] == NULL){
  41.     S1->p[i] = NULL;
  42.     y = NULL;
  43.       }
  44.  
  45.       else if(S1->p[i] != NULL && y == NULL && S2->p[i] == NULL){
  46.     y = NULL;
  47.       }
  48.  
  49.       else if(S1->p[i] == NULL && y != NULL && S2->p[i] == NULL){
  50.     S1->p[i] = y;
  51.     y = NULL;
  52.       }
  53.  
  54.       else if(S1->p[i] == NULL && y == NULL && S2->p[i] != NULL){
  55.     S1->p[i] = S2->p[i];
  56.     y = NULL;
  57.       }
  58.  
  59.       else if(S1->p[i] != NULL && y != NULL && S2->p[i] == NULL){
  60.     S1->p[i] = NULL;
  61.     y = pennantUnion(S1->p[i], y);
  62.       }
  63.  
  64.       else if(S1->p[i] != NULL && y == NULL && S2->p[i] != NULL){
  65.     S1->p[i] = NULL;
  66.     y = pennantUnion(S1->p[i], S2->p[i]);
  67.       }
  68.  
  69.       else if(S1->p[i] == NULL && y != NULL && S2->p[i] != NULL){
  70.     S1->p[i] = NULL;
  71.     y = pennantUnion(y, S2->p[i]);
  72.       }
  73.  
  74.       else if(S1->p[i] != NULL && y != NULL && S2->p[i] != NULL){
  75.     y = pennantUnion(y, S2->p[i]);
  76.       }
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement