Yuvalxp8 icon

Magazines

Yuvalxp8 | PRO | 11/13/17 07:34:40 AM UTC | 0 ⭐ | 373 👁️ | Never ⏰ | []
Java |

3.71 KB

|

None

|

0 👍

/

0 👎

import java.util.*;
 
public class Functions {
    public static Scanner UI = new Scanner(System.in);
    public static<T> int stackLength(Stack<T> stack)
    {
        int counter = 0;
        Stack<T> save = duplicate(stack);
        while(!save.isEmpty())
        {
            counter++;
            save.pop();
        }
        return counter;
    }
 
    public static<T> Stack<T> duplicate(Stack<T> stack)
    {
        Stack<T> temp = new Stack<T>();
        Stack<T> newStack = new Stack<T>();
        while(!stack.isEmpty())
        {
            temp.push(stack.top());
            stack.pop();
        }
        while(!temp.isEmpty())
        {
            stack.push(temp.top());
            newStack.push(temp.pop());
        }
        return newStack;
    }
 
public static<T> Stack<T> duplicateReverse(Stack<T> stack)
    {
        Stack<T> temp = duplicate(stack);
        Stack<T> newStack = new Stack<T>();
        while(!stack.isEmpty())
            newStack.push(temp.pop());
        return newStack;
    }
 
    public static Stack<Integer> intStack()
    {
        Stack<Integer> stack = new Stack<Integer>();
        System.out.println("Enter value (enter '999' to stop)");
        int userInput = UI.nextInt();
        while(userInput != 999)
        {
            stack.push(userInput);
            System.out.println("Enter value (enter '999' to stop)");
            userInput = UI.nextInt();
        }
        return stack;
    }
 
    public static<T> void toString(Stack<T> stack)
    {
        Stack<T> temp = duplicate(stack);
        while(!temp.isEmpty())
        {
            System.out.print(temp.pop().toString() + " , ");
        }
        System.out.print(" null");
    }
 
    public static int maxNum(Stack<Integer> stack)
    {
        int max = 0;
        Stack<Integer> temp = duplicate(stack);
        while(!temp.isEmpty())
        {
            if(max < temp.top())
                max = temp.pop();
            else
                temp.pop();
        }
        return max;
    }
    public static boolean inStack(Stack<Integer> stack, int num)
    {
        Stack<Integer> temp = duplicate(stack);
        while(!temp.isEmpty())
        {
            if(num == temp.top())
                return true;
        }
        return false;
    }
    public static int inStackTimes(Stack<Integer> stack, int num)
    {
        int counter = 0;
        Stack<Integer> temp = duplicate(stack);
        while(!temp.isEmpty())
        {
            if(num == temp.top())
                counter++;
            temp.pop();
        }
        return counter;
    }
 
    public static Stack<Integer> removeNum(Stack<Integer> stack, int num)
    {
        Stack<Integer> temp = duplicate(stack);
        Stack<Integer> newStack = new Stack<Integer>();
        while(!temp.isEmpty())
        {
            if(num == temp.top())
                temp.pop();
            else
                newStack.push(temp.pop());
        }
        return newStack;
    }
 
    public static<T> T getPos(Stack<T> stack, int pos)
    {
        Stack<T> temp = duplicate(stack);
        while(pos > 1)
        {
            temp.pop();
            pos--;
        }
        return temp.top();
    }
 
    public static<T> boolean isEquals(Stack<T> stack, Stack<T> stack2)
    {
        Stack<T> temp = duplicate(stack);
        Stack<T> temp2 = duplicate(stack2);
        int length = stackLength(temp);
        int counter = 0;
        while(!temp.isEmpty())
        {
            if(temp.pop() == temp2.pop())
                counter++;
        }
        if(counter == length)
            return true;
        else
            return false;
    }
}

Comments