Advertisement
Yuvalxp8

Stacks_YuvalPorat

Feb 17th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.98 KB | None | 0 0
  1. public static<T> Stack<T> duplicate(Stack<T> st)
  2.     {
  3.         Stack<T> ezer = new Stack<T>();
  4.         Stack<T> st2 = new Stack<T>();
  5.        
  6.         while (!st.isEmpty())
  7.             ezer.push(st.pop());
  8.        
  9.         while (!ezer.isEmpty())
  10.         {
  11.             st2.push(ezer.top());
  12.             st.push(ezer.pop());
  13.         }
  14.         return st2;
  15.     }
  16.    
  17.     public static Stack<Integer> createStack()
  18.     {
  19.         Stack<Integer> st = new Stack<Integer>();
  20.         System.out.println("enter the next Value for finish enter 999");
  21.  
  22.         int n =sc.nextInt();
  23.         while (n!=999)
  24.         {
  25.             st.push(n);
  26.             System.out.println("enter the next Value for finish enter 999");
  27.  
  28.             n =sc.nextInt();
  29.         }
  30.         return st;
  31.     }
  32.    
  33.     public static<T> void toString(Stack<T> st)
  34.     {
  35.         Stack<T> s=duplicate(st);
  36.         while (!s.isEmpty())
  37.          System.out.print(s.pop().toString() + " ");
  38.     }
  39.  
  40.     public static Scanner sc=new Scanner(System.in);
  41.  
  42.    
  43.     public static<T> int howMany(Stack<T> st)
  44.     {
  45.         int counter = 0;
  46.         while(!st.isEmpty())
  47.         {
  48.             st.pop();
  49.             counter ++;
  50.         }
  51.         return counter;
  52.     }
  53.    
  54.     public static<T> int returnBiggest(Stack<Integer> st)
  55.     {
  56.         int currentBiggest = 0;
  57.         currentBiggest = st.top();
  58.         while (!st.isEmpty())
  59.         {
  60.             if(currentBiggest < st.top())
  61.                 currentBiggest = st.top();
  62.             st.pop();
  63.         }      
  64.         return currentBiggest;
  65.     }
  66.    
  67.     public static<T> Stack<Integer>  dupInfo(Stack<Integer> st)
  68.     {
  69.         Stack<Integer> stCopy = duplicate(st);
  70.         Stack<Integer> flipped = flipStack(stCopy);
  71.         Stack<Integer> info = new Stack<Integer>();
  72.         int current,counter;
  73.         while(!flipped.isEmpty())
  74.         {
  75.             current = flipped.pop();
  76.             counter = 1;
  77.             while(!flipped.isEmpty() && current == flipped.top())
  78.             {
  79.                 counter ++;
  80.                 flipped.pop();
  81.             }
  82.            
  83.             info.push(counter);
  84.             info.push(current);
  85.             counter = 0;
  86.         }
  87.         return info;
  88.     }
  89.    
  90.     public static<T> Stack<Integer> flipStack(Stack<Integer> st)
  91.     {
  92.         Stack<Integer> stFlipped = new Stack<Integer>();
  93.         int first;
  94.         while (!st.isEmpty())
  95.         {
  96.             first = st.pop();
  97.             stFlipped.push(first);
  98.         }
  99.         return stFlipped;
  100.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement