Answered step by step
Verified Expert Solution
Question
1 Approved Answer
You are not allowed to use any of the standard Java collection types ( like ArrayList ) for this assignment. Do not import any Java
You are not allowed to use any of the standard Java collection types like ArrayList for this assignment. Do not import any Java standard library features from java.util, except java.util.NoSuchElementException. You may use simple arrays. You may also use any code from your MyArrayList or MyLinkedList submissions.
Problem Description and Given Info
For this assignment you are given the following Java source code files:
IStack.java This file is complete make no changes to this file
MyStack.java You must complete this file
Main.java You may use this file to write code to test your MyStack
You must complete the public class named MyStack.java with fields and methods as defined below. Your MyStack.java will implement the IStack interface that is provided in the IStack.java file. You must implement your MyStack class as either a linked list or an array list refer to your MyArrayList and MyLinkedList work Your MyStack must not be arbitrarily limited to any fixed size at runtime.
UML
MyStackClass Diagram
UML CLass Diagram: MyStack
Structure of the Fields
While there are no required fields for your MyStack class, you will need to decide what fields to implement. This decision will be largely based on your choice to implement this MyStack as either an array list or a linked list.
Structure of the Methods
As described by the UML Class Diagram above, your MyStack class must implement the following methods:
a public method named push that takes an Object argument and returns nothing
a public method named pop that takes no arguments and returns an Object
a public method named peek that takes no arguments and returns an Object
a public method named indexOf that takes an Object argument and returns an int
a public method named size that takes no arguments and returns an int
a public method named isEmpty that takes no arguments and returns an boolean
Note that:
these methods are declared in the IStack interface. You will be implementing these methods in this MyStack concrete class.
Additional Information
MyStack
This concrete class will store its elements in either an internal array list or linked list. All such implementation details must be contained in your myStack.java file. You may add any additional fields, methods, and inner classes that you will need to achieve this.
push method
Add a new item to top of the stack. For example: given the stack where the value is on the top and an instruction to push the result would be this with the value now on the top of the stack.
pop method
Remove and return the item currently on the top of the stack. For example: given the stack where the value is on the top and an instruction to pop the stack would now look like this and the value would be returned.
Throws a NoSuchElementException if the stack is currently empty when this method is called.
peek method
Return but do not remove the item currently on the top of the stack. For example: given the stack where the value is on the top and an instruction to peek the stack would still look like this and the value would be returned.
Throws a NoSuchElementException if the stack is currently empty when this method is called.
indexOf method
Return the zerobased number of elements from the front or top of the collection where the specified item is first found. Returns if the item is not found in the collection. For example: given the stack where the value is on the top and the instruction indexOf the value would be returned because the value was found at index element below the top in the stack. For another example: given the stack where the value is on the top and the instruction indexOf the value would be returned because the value is not found in the stack
size method
Returns the number of elements currently stored in the stack.
isEmpty method
Returns true if there are currently no items stored in this stack, otherwise returns false.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started