Example #1
0
 public static void Push(int val, StrukturaC set)
 {
     if (set.ElemList.Count == 0 || set.Ind >= set.ElemList.Count)
     {
         set.ElemList.Add(val);
         set.Ind++;
     }
     else
     {
         set.ElemList[set.Ind] = val;
         set.Ind++;
     }
     if (set.MinList.Count == 0)
     {
         set.MinList.Add(set.Ind - 1);
         set.MinIndex++;
     }
     else
     {
         if (set.MinIndex < 0 || val < set.ElemList[set.MinList[set.MinIndex]])
         {
             if (set.MinIndex + 1 < set.MinList.Count)
             {
                 set.MinList[set.MinIndex + 1] = set.Ind;
             }
             else
             {
                 set.MinList.Add(set.Ind);
             }
             set.MinIndex++;
         }
     }
 }
Example #2
0
 public static void Print(StrukturaC set)
 {
     for (int i = 0; i < set.Ind; i++)
     {
         Console.Write(set.ElemList[i] + " ");
     }
     Console.Write("\n");
 }
Example #3
0
 public static int Pop(StrukturaC set)
 {
     if (set.Ind > 0)
     {
         int whatToReturn = set.ElemList[set.Ind - 1];
         set.Ind--;
         return(whatToReturn);
     }
     return(-1);
 }
Example #4
0
 public static void UpToMin(StrukturaC set)
 {
     if (set.MinIndex >= 0)
     {
         set.Ind = set.MinList[set.MinIndex] - 1;
         set.MinIndex--;
         if (set.Ind < 0)
         {
             set.Ind = 0;
         }
     }
 }