In: Computer Science
Develop and test two Java classes:
Each ADT must include a toString( ) method:
You are encouraged to review the rubric below for details on how the project will be graded.
This what i need to work with below:
-------------------------------------------------------------------------------------------------------------------------------------------------------------
package interfaces;
public interface StackInterface {
   void push(E element); // add an element to the
stack - always at the "top"
  
   E pop(); // remove and return the top of the
stack
  
   E peek(); // return the top of the stack ... without
removing
  
   boolean isEmpty();
  
   boolean isFull();
  
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
package interfaces;
public interface QueueInterface {
   void enqueue(E element); // add an element to the
queue - always at the end of the queue
  
   E dequeue(); // remove and return the front of the
queue
  
   boolean isEmpty();
  
   boolean isFull();
  
}
-----------------------------------------------------------------------------------------------------------------------------------------------------
package nodes;
public class LLNode {
  
   private E info;
   private LLNode next;
  
   public LLNode(E info) {
       this.info = info;
       next = null;
   }
  
   public E getInfo() {
       return info;
   }
  
   public void setInfo(E info) {
       this.info = info;
   }
  
   public LLNode getNext() {
       return next;
   }
  
   public void setNext(LLNode next) {
       this.next = next;
   }
}
Array doesnt need to be extended when stack is full and the lenght of array can be up to 6
Answer : An array based stack ADT
public class ArrayStack implements Stack {
        private Object[] theArray;
        private int topOfStack;
        private static final int DEFAULT_CAPACITY = 10;
        /**
         * Construct the stack.
         */
        public ArrayStack() {
            theArray = new Object[DEFAULT_CAPACITY];
            topOfStack = -1;
        }
        /**
         * Test if the stack is logically empty.
         *
         * @return true if empty, false otherwise.
         */
        public boolean isEmpty() {
            return topOfStack == -1;
        }
        /**
         * Make the stack logically empty.
         */
        public void makeEmpty() {
            topOfStack = -1;
        }
        /**
         * Get the most recently inserted item in the stack. * Does not alter
         * the stack.
         *
         * @return the most recently inserted item in the stack.
         * @throws UnderflowException if the stack is empty.
         */
        public Object top() {
            if (isEmpty()) {
                throw new UnderflowException("ArrayStack top");
            }
            return theArray[ topOfStack];
        }
        /**
         * Remove the most recently inserted item from the stack.
         *
         * @throws UnderflowException if the stack is empty.
         */
        public void pop() {
            if (isEmpty()) {
                throw new UnderflowException("ArrayStack pop");
            }
            topOfStack--;
        }
        /**
         * Return and remove the most recently inserted item * from the stack.
         *
         * @return the most recently inserted item in the stack.
         * @throws Underflow if the stack is empty.
         */
        public Object topAndPop() {
            if (isEmpty()) {
                throw new UnderflowException("ArrayStack topAndPop");
            }
            return theArray[ topOfStack--];
        }
        /**
         * Insert a new item into the stack.
         *
         * @param x the item to insert.
         */
        public void push(Object x) {
            if (topOfStack + 1 == theArray.length) {
                doubleArray();
            }
            theArray[ ++topOfStack] = x;
        }
        /**
         * Internal method to extend theArray.
         */
        private void doubleArray() {
            Object[] newArray;
            newArray = new Object[theArray.length * 2];
            for (int i = 0; i < theArray.length; i++) {
                newArray[ i] = theArray[ i];
            }
            theArray = newArray;
        }
    }