daily pastebin goal
60%
SHARE
TWEET

Untitled

a guest Dec 19th, 2018 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.*;
  2. public class TaskStack {
  3.  
  4.  
  5.     /**
  6.      * create new stack with received data from input
  7.      * @return
  8.      */
  9.     public static Stack<Integer> createStackFromInput() {
  10.         Stack<Integer> stack = new Stack<Integer>();
  11.         Scanner in = new Scanner(System.in);
  12.         int val;
  13.  
  14.         System.out.println("enter val. to finish enter -999");
  15.         val = in.nextInt();
  16.  
  17.         while(val!=-999) {
  18.             stack.push(val);
  19.             System.out.println("enter val. to finish enter -999");
  20.             val = in.nextInt();
  21.         }
  22.  
  23.         return stack;
  24.     }
  25.  
  26.     public static Stack<Character> createStackFromInputcahr() {
  27.         Stack<Character> stack = new Stack<Character>();
  28.         Scanner in = new Scanner(System.in);
  29.         char val;
  30.  
  31.         System.out.println("enter val. to finish enter -");
  32.         val = in.next().charAt(0);
  33.  
  34.         while(val!='-') {
  35.             stack.push(val);
  36.             System.out.println("enter val. to finish enter -");
  37.             val = in.next().charAt(0);
  38.         }
  39.  
  40.         return stack;
  41.     }
  42.  
  43.     public static <T> void addPopedVals(Stack<T> stack, Stack<T> tmpStack) {
  44.         while(!tmpStack.isEmpty()) {
  45.             stack.push(tmpStack.pop());
  46.         }
  47.     }
  48.  
  49.     //להגשה: כתבו פעולה המקבלת מחסנית וערך X ומחזירה את מספר המופעים של הערך X במחסנית.
  50.     public static <T> int countVal (Stack<T>stack , T val ){
  51.  
  52.         int count = 0;
  53.         Stack <T> tmpStack = new <T>Stack();
  54.         addPopedVals(stack, tmpStack);
  55.         System.out.println("The stcak" + stack.toString());
  56.         while(!stack.isEmpty()) {
  57.             T currentVal =  stack.pop();
  58.             if(currentVal.equals(val)) {
  59.                 count++;
  60.             }
  61.         }
  62.         return count;
  63.     }
  64.     //return the min char . the stack change
  65.     public static <T>Character minChar(Stack<Character>stack) {
  66.         Stack <Character> tmpStack = new <Character>Stack();
  67.         addPopedVals(stack, tmpStack);
  68.         System.out.println("The stcak" + stack.toString());
  69.  
  70.         Character min =  stack.pop();
  71.         while(!stack.isEmpty()) {
  72.             if(min>stack.pop()) {
  73.                 System.out.println("The stcak" + stack.toString());
  74.                 min=stack.top();
  75.                 stack.pop();
  76.             }
  77.         }
  78.         return  min;
  79.     }
  80.     //find min char and save the original stack
  81.     public static <T>Character minCharSaveOrig(Stack<Character>stack) {
  82.         Stack <Character> tmpStack = new <Character>Stack();
  83.         addPopedVals(stack, tmpStack);
  84.         return  minChar(stack);
  85.  
  86.     }
  87.     //כתבו פעולה המקבלת מחסנית ומיקום N ומחזירה את ערך האיבר הנמצא בעומק N
  88.     //במחסנית. דוגמא: עבור N=4 יוחזר האיבר הרביעי מראש המחסנית. הנחה: קיים איבר בעומק N
  89.     public static <T> int countOfStack(Stack<T>stack ) {
  90.         Stack <T> tmpStack = new <T>Stack();
  91.         int count = 0;
  92.         T currentVal;
  93.         while(!stack.isEmpty()) {
  94.             currentVal = stack.pop();
  95.             count++;
  96.             tmpStack.push(currentVal);
  97.         }
  98.         addPopedVals(stack, tmpStack);
  99.         return count ;
  100.  
  101.  
  102.     }
  103.  
  104.  
  105.     public static  <T> T  index(Stack<T>stack , int n) {
  106.         Stack <T> tmpStack = new <T>Stack();
  107.         int count = countOfStack(stack) ;
  108.         //int CameLorid = count-n;
  109.         T currentVal;
  110.         for (int i = 0; i < n-1; i++) {
  111.             currentVal = stack.pop();
  112.             tmpStack.push(currentVal);
  113.         }
  114.         addPopedVals(stack, tmpStack);
  115.         return  stack.top();
  116.  
  117.     }
  118.  
  119.     public static <T> Stack reverse (Stack<T>stack) {
  120.         Stack <T> tmpStack = new <T>Stack();
  121.         Stack <T> reverseStack = new <T>Stack();
  122.         T currentVal;
  123.  
  124.         while(!stack.isEmpty()) {
  125.             currentVal=stack.pop();
  126.             tmpStack.push(currentVal);
  127.             reverseStack.push(currentVal);
  128.  
  129.         }
  130.  
  131.         addPopedVals(stack, tmpStack);
  132.         return reverseStack;
  133.     }
  134.  
  135.  
  136.     public static void main(String[] args) {
  137.         Stack <Integer>s1=createStackFromInput();
  138.         //System.out.println(countVal(s1, 5));
  139.         //Stack <Character>s1=createStackFromInputcahr();
  140.         //System.out.println(minCharSaveOrig(s1));
  141.  
  142.         //System.out.println(index(s1, 3));
  143.         //System.out.println("stack: "+ s1);
  144.         System.out.println(reverse(s1));
  145.     }
  146. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top