idastan97

CSCI152 L9 P2

Feb 11th, 2017
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.10 KB | None | 0 0
  1. /////////////////////////////////////////////////////////////////////////// Static Methods
  2. public class ArrayIntStackQueueStaticMethods {
  3.    
  4.     public static int evenCount(Stack<Integer> stk){
  5.         Stack<Integer> temp=new ArrayStack();
  6.         int s=stk.getSize(), cnt=0;
  7.         for (int i=0; i<s; i++){
  8.             int x;
  9.             try {
  10.                x=stk.pop();
  11.             } catch (Exception ex){
  12.                 System.out.println(ex.getMessage());
  13.                 x=1;
  14.             }
  15.             if (x%2==0){
  16.                 cnt++;
  17.             }
  18.             temp.push(x);
  19.         }
  20.         for (int i=0; i<s; i++){
  21.             try {
  22.                 stk.push(temp.pop());
  23.             } catch (Exception ex) {
  24.                 System.out.println(ex.getMessage());
  25.             }
  26.         }
  27.         return cnt;
  28.     }
  29.    
  30.     public static Stack<Integer> copyStack(Stack<Integer> orig) {
  31.         Stack<Integer> res=new ArrayStack(), temp=new ArrayStack();
  32.         int s=orig.getSize();
  33.         for (int i=0; i<s; i++){
  34.             try {
  35.                 temp.push(orig.pop());
  36.             } catch (Exception ex){
  37.                 System.out.println(ex.getMessage());
  38.             }
  39.         }
  40.         for (int i=0; i<s; i++){
  41.             try {
  42.                 int x=temp.pop();
  43.                 res.push(x);
  44.                 orig.push(x);
  45.             } catch (Exception ex){
  46.                 System.out.println(ex.getMessage());
  47.             }
  48.         }
  49.         return res;
  50.     }
  51.    
  52.     public static Queue<Integer> copyQueue(Queue<Integer> orig){
  53.         Queue<Integer> res=new ArrayQueue();
  54.         int s=orig.getSize();
  55.         for (int i=0; i<s; i++){
  56.             int x;
  57.             try{
  58.                 x=orig.dequeue();
  59.             } catch (Exception ex){
  60.                 System.out.println(ex.getMessage());
  61.                 x=0;
  62.             }
  63.             orig.enqueue(x);
  64.             res.enqueue(x);
  65.         }
  66.         return res;
  67.     }
  68.  
  69.     public static void reverseStack(Stack<Integer> toRev){
  70.         Queue<Integer> tempQueue=new ArrayQueue();
  71.         int s=toRev.getSize();
  72.         for (int i=0; i<s; i++){
  73.             try{
  74.                 tempQueue.enqueue(toRev.pop());
  75.             } catch (Exception ex){
  76.                 System.out.println(ex.getMessage());
  77.             }
  78.         }
  79.         for (int i=0; i<s; i++){
  80.             try{
  81.                 toRev.push(tempQueue.dequeue());
  82.             } catch (Exception ex){
  83.                 System.out.println(ex.getMessage());
  84.             }
  85.         }
  86.     }
  87.    
  88.     public static void reverseQueue(Queue<Integer> toRev){
  89.         Stack<Integer> tempStack=new ArrayStack();
  90.         int s=toRev.getSize();
  91.         for (int i=0; i<s; i++){
  92.             try{
  93.                 tempStack.push(toRev.dequeue());
  94.             } catch (Exception ex){
  95.                 System.out.println(ex.getMessage());
  96.             }
  97.         }
  98.         for (int i=0; i<s; i++){
  99.             try{
  100.                 toRev.enqueue(tempStack.pop());
  101.             } catch (Exception ex){
  102.                 System.out.println(ex.getMessage());
  103.             }
  104.         }
  105.     }
  106.    
  107.     public static boolean isPalindrome(Queue<Integer> q){
  108.         Stack<Integer> tempStack=new ArrayStack();
  109.         Queue<Integer> tempQueue=new ArrayQueue();
  110.         int s=q.getSize();
  111.         for (int i=0; i<s; i++){
  112.             int x;
  113.             try {
  114.                 x=q.dequeue();
  115.             } catch (Exception ex){
  116.                 System.out.println(ex.getMessage());
  117.                 x=0;
  118.             }
  119.             tempStack.push(x);
  120.             tempQueue.enqueue(x);
  121.             q.enqueue(x);
  122.         }
  123.         boolean res=true;
  124.         for (int i=0; i<s; i++){
  125.             try {
  126.                 if (tempStack.pop()!=tempQueue.dequeue()){
  127.                     res=false;
  128.                     break;
  129.                 }
  130.             } catch (Exception ex) {
  131.                 System.out.println(ex.getMessage());
  132.             }
  133.         }
  134.         return res;
  135.     }
  136.    
  137.     public static void insert(Stack<Integer> st, int pos, int val){
  138.         int s=st.getSize();
  139.         Stack<Integer> tempStack=new ArrayStack();
  140.         for (int i=0; i<s+1-pos; i++){
  141.             try {
  142.                 tempStack.push(st.pop());
  143.             } catch (Exception ex){
  144.                 System.out.println(ex.getMessage());
  145.             }
  146.         }
  147.         st.push(val);
  148.         for (int i=0; i<s+1-pos; i++){
  149.             try {
  150.                 st.push(tempStack.pop());
  151.             } catch (Exception ex){
  152.                 System.out.println(ex.getMessage());
  153.             }
  154.         }
  155.     }
  156.    
  157.     public static Stack<Integer> merge(Stack<Integer> s1, Stack<Integer> s2){
  158.         Stack<Integer> tempStack=new ArrayStack(), resStack=new ArrayStack();
  159.         while (s1.getSize()>0 || s2.getSize()>0){
  160.             if (s1.getSize()>0 && s2.getSize()>0){
  161.                 int x, y;
  162.                 try {
  163.                     x=s1.pop();
  164.                     y=s2.pop();
  165.                 } catch (Exception ex){
  166.                     System.out.println(ex.getMessage());
  167.                     x=0;
  168.                     y=0;
  169.                 }
  170.                 if (x>=y){
  171.                     tempStack.push(x);
  172.                     s2.push(y);
  173.                 } else {
  174.                     tempStack.push(y);
  175.                     s1.push(x);
  176.                 }
  177.             } else if (s1.getSize()>0){
  178.                 try{
  179.                     tempStack.push(s1.pop());
  180.                 } catch (Exception ex){
  181.                     System.out.println(ex.getMessage());
  182.                 }
  183.             } else {
  184.                 try{
  185.                     tempStack.push(s2.pop());
  186.                 } catch (Exception ex){
  187.                     System.out.println(ex.getMessage());
  188.                 }
  189.             }
  190.         }
  191.         int s=tempStack.getSize();
  192.         for (int i=0; i<s; i++){
  193.             try {
  194.                 resStack.push(tempStack.pop());
  195.             } catch (Exception ex){
  196.                 System.out.println(ex.getMessage());
  197.             }
  198.         }
  199.         return resStack;
  200.     }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment