In addition to the base files, three additional files are attached: EmptyCollectionException.java, LinearNode.java, and StackADT.java. These files will need to be added to your Java project. They provide data structure functionality that you will build over. It is suggested that you test if these files have been properly added to your project by confirming that Base_A05Q1.java compiles correctly.
Complete the implementation of the ArrayStack class. Specifically, complete the implementations of the isEmpty, size, and toString methods. See Base_A05Q1.java for a starting place and a description of these methods.
Base_A05Q1
/**
* Write a description of the program here.
*
* @author Lewis et al., (your name)
* @version (program version)
*/
import java.util.Arrays;
public class Base_A05Q1
{
/**
* Program entry point for stack
testing.
* @param args Argument list.
*/
public static void main(String[] args)
{
ArrayStack<Integer> stack = new
ArrayStack<Integer>();
System.out.println("STACK TESTING");
stack.push(3);
stack.push(7);
stack.push(4);
System.out.println(stack.peek());
stack.pop();
stack.push(9);
stack.push(8);
System.out.println(stack.peek());
System.out.println(stack.pop());
System.out.println(stack.peek());
System.out.println("The
size of the stack is: " + stack.size());
System.out.println("The
stack contains:\n" +
stack.toString());
}
/**
* An array implementation of a stack in
which the bottom of the
* stack is fixed at index 0.
*
* @author Java Foundations
* @version 4.0
*/
public static class ArrayStack<T>
implements StackADT<T>
{
private final static int
DEFAULT_CAPACITY = 100;
private int top;
private T[] stack;
/**
* Creates an empty
stack using the default capacity.
*/
public
ArrayStack()
{
this(DEFAULT_CAPACITY);
}
/**
* Creates an empty
stack using the specified capacity.
* @param
initialCapacity the initial size of the array
*/
@SuppressWarnings("unchecked") //see p505.
public ArrayStack(int
initialCapacity)
{
top = 0;
stack = (T[])(new Object[initialCapacity]);
}
/**
* Adds the
specified element to the top of this stack, expanding
* the capacity of
the array if necessary.
* @param element
generic element to be pushed onto stack
*/
public void push(T
element)
{
if (size() == stack.length)
expandCapacity();
stack[top] = element;
top++;
}
/**
* Creates a new
array to store the contents of this stack with
* twice the
capacity of the old one.
*/
private void
expandCapacity()
{
stack = Arrays.copyOf(stack, stack.length * 2);
}
/**
* Removes the
element at the top of this stack and returns a
* reference to
it.
* @return element
removed from top of stack
* @throws
EmptyCollectionException if stack is empty
*/
public T pop() throws
EmptyCollectionException
{
if (isEmpty())
throw new EmptyCollectionException("stack");
top--;
T result = stack[top];
stack[top] = null;
return result;
}
/**
* Returns a
reference to the element at the top of this stack.
* The element is
not removed from the stack.
* @return element
on top of stack
* @throws
EmptyCollectionException if stack is empty
*/
public T peek() throws
EmptyCollectionException
{
if (isEmpty())
throw new EmptyCollectionException("stack");
return stack[top-1];
}
/**
* Returns true if
this stack is empty and false otherwise.
* @return true if
this stack is empty
*/
public boolean
isEmpty()
{
//TODO: Implement me.
return false;
}
/**
* Returns the
number of elements in this stack.
* @return the
number of elements in the stack
*/
public int size()
{
//TODO: Implement me.
return 0;
}
/**
* Returns a string
representation of this stack. The string has the
* form of each
element printed on its own line, with the top most
* element
displayed first, and the bottom most element displayed last.
* If the list is
empty, returns the word "empty".
* @return a string
representation of the stack
*/
public String
toString()
{
//TODO: Implement me.
return "";
}
}
}
EmptyCollectionException.java
/**
* Represents the situation in which a collection is empty.
*
* @author Java Foundations
* @version 4.0
*/
public class EmptyCollectionException extends
RuntimeException
{
/**
* Sets up this exception with an
appropriate message.
* @param collection the name of the
collection
*/
public EmptyCollectionException(String
collection)
{
super("The " +
collection + " is empty.");
}
}
LinearNode.java
/**
* Represents a node in a linked list.
*
* @author Java Foundations
* @version 4.0
*/
public class LinearNode<T>
{
private LinearNode<T> next;
private T element;
/**
* Creates an empty node.
*/
public LinearNode()
{
next = null;
element = null;
}
/**
* Creates a node storing the specified
element.
* @param elem element to be stored
*/
public LinearNode(T elem)
{
next = null;
element = elem;
}
/**
* Returns the node that follows this
one.
* @return reference to next node
*/
public LinearNode<T> getNext()
{
return next;
}
/**
* Sets the node that follows this
one.
* @param node node to follow this
one
*/
public void setNext(LinearNode<T>
node)
{
next = node;
}
/**
* Returns the element stored in this
node.
* @return element stored at the node
*/
public T getElement()
{
return element;
}
/**
* Sets the element stored in this
node.
* @param elem element to be stored at this
node
*/
public void setElement(T elem)
{
element = elem;
}
}
StackADT.java
/**
* Defines the interface to a stack collection.
*
* @author Java Foundations
* @version 4.0
*/
public interface StackADT<T>
{
/**
* Adds the specified element to the top of
this stack.
* @param element element to be pushed onto
the stack
*/
public void push(T element);
/**
* Removes and returns the top element from
this stack.
* @return the element removed from the
stack
*/
public T pop();
/**
* Returns without removing the top element
of this stack.
* @return the element on top of the
stack
*/
public T peek();
/**
* Returns true if this stack contains no
elements.
* @return true if the stack is empty
*/
public boolean isEmpty();
/**
* Returns the number of elements in this
stack.
* @return the number of elements in the
stack
*/
public int size();
/**
* Returns a string representation of this
stack.
* @return a string representation of the
stack
*/
public String toString();
}
Sample Output
STACK TESTING
4
8
8
9
The size of the stack is: 3
The stack contains:
9
7
3
We need at least 10 more requests to produce the answer.
0 / 10 have requested this problem solution
The more requests, the faster the answer.
In addition to the base files, three additional files are attached: EmptyCollectionException.java, LinearNode.java, and StackADT.java. These...
Complete the implementation of the LinkedStack class presented in Chapter 13. Specifically, complete the implementations of the peek, isEmpty, size, and toString methods. See Base_A06Q1.java for a starting place and a description of these methods. Here is the base given: /** * Write a description of the program here. * * @author Lewis et al., (your name) * @version (program version) */ import java.util.Iterator; public class Base_A06Q1 { /** * Program entry point for stack testing. * @param args Argument...
There is a data structure called a drop-out stack that behaves like a stack in every respect except that if the stack size is n, then when the n+1element is pushed, the bottom element is lost. Implement a drop-out stack using links, by modifying the LinkedStack code. (size, n, is provided by the constructor. Request: Please create a separate driver class, in a different file, that tests on different types of entries and show result of the tests done on...
(1) Implement the countKey(T element) method, which should return a count of the number of times that the given key (the element) is found in the list. (2) Implement the indexOf(T element) method, which is similar as the indexOf method in the String class. It returns the index (the position starting from the head node) of the first occurrence of the given element, or -1, if the element does not occur in the list. You will need to track the...
In Java. What would the methods of this class look like?
StackADT.java
public interface StackADT<T>
{
/** Adds one element to the top of this stack.
* @param element element to be pushed onto stack
*/
public void push (T element);
/** Removes and returns the top element from this stack.
* @return T element removed from the top of the stack
*/
public T pop();
/** Returns without removing the top element of this
stack.
* @return T...
What is wrong with my code, when I pass in 4 It will not run, without the 4 it will run, but throw and error. I am getting the error required: no arguments found: int reason: actual and formal argument lists differ in length where T is a type-variable: T extends Object declared in class LinkedDropOutStack public class Help { /** * Program entry point for drop-out stack testing. * @param args Argument list. */ public static void main(String[] args)...
I was told I need three seperate files for these classes is there anyway to tie all these programs together into one program after doing that. I'm using netbeans btw. import java.util.ArrayList; import java.util.Scanner; /** * * */ public class MySorts { public static void main(String[] args) { Scanner input = new Scanner(System.in); String sentence; String again; do { System.out .println("Enter a sentence, I will tell you if it is a palindrome: ");...
NO ONE HAS PROVIDED THE CORRECT CODE TO PROVIDE THE GIVEN OUTPUT. PLEASE PROVIDE CODE THAT WOULD CAUSE THE HW1.java TO PRINT THE RIGHT DATA.!!! The LinkedList class implements both the List interface and the Stack interface, but several methods (listed below) are missing bodies. Write the code so it works correctly. You should submit one file, LinkedList.java. Do not change the interfaces. Do not change the public method headers. Do not rename the LinkedList class. None of your methods...
Currently, I'm getting this as my output: "Exception in thread "main" java.lang.NullPointerException at InfixExpression.execute(InfixExpression.java:98) at InfixExpression.Evaluate(InfixExpression.java:65) at InfixExpression.setWholeExpr(InfixExpression.java:24) at InfixExpression.<init>(InfixExpression.java:17) at Main.testHW1(Main.java:17) at Main.main(Main.java:6)" I need to get this as my output: "Testing InfixExpression: When passing null, the String and double = Infix String: , result: 0.0 When passing a valid String, the String and double = Infix String: ( 234.5 * ( 5.6 + 7.0 ) ) / 100.2, result: 29.488023952095805 ..." I...
JAVA Lab Create a class called ArrayBasedStack. Declare the following variables: • data: references an array storing elements in the list • topOfStack: an int value representing the location of the stack top in the array • INITIAL_CAPACITY: the default capacity of the stack public class ArrayBasedStack <E> { private E[] data; private int topOfStack; private static final int INITIAL_CAPACITY = 5; } Add a constructor that will initialize the stack with a user-defined initial capacity. The top of the...
Suppose we decide to add a new operation to our Stack ADT called sizeIs, which returns a value of primitive type int equal to the number of items on the stack. The method signature for sizeIS is public int sizeIs() a.) Write the code for sizeIs for the ArrayStack class b.) Write the code for sizeIs for the LinkedStack class (do not add any instance variables to the class; each time sizeIs is called you must "walk" through the stack...