Advertisement
Guest User

Untitled

a guest
Dec 19th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.84 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement