
Book: Java Software Structures
Author: John Lewis; Joe Chase
Javascript
1. Create a generic type java interface StackADT<T>with the following methods:
a.public void push(T element);//Push an element at the top of a stack
b.public T pop();//Remove and return an element from the top of a stack
c.public T peek();//return the top element without removing it
d.public booleanisEmpty();//Return True if a stack is emptye.public int size();//Return the number of elements in a stack
f.public String toString();//Print all the elements of a stack
2. Define ArrayStack<T>class which will implementStackADT<T>interface
3. Use your ArrayStack<T>class to compute a postfix expression, for instance, 3 4 * will yield12;3 4 6 + *will yield 30 etc.
During computing a postfix expression:
a.While you perform a push operation, if the stack is full, generate an exception
b.While you perform a pop operation, if the stack is empty, generate an exception
c.If two operands are not available on the stack for an operator, generate a message, “Postfix expression is invalid”.
d.If more than one operand is available, while no operator is left, generate a message, “Postfix expression is invalid”.
So far I have:
package com.company;
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)
throws java.lang.IllegalArgumentException;
/**
* 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();
}
package com.company;
import java.util.Arrays;
public 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
*/
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++;
}
@Override
public boolean isEmpty()
{
while (top==0)
return true;
return false;
}
@Override
public int size() {
return 0;
}
/**
* 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];
}
}
package com.company;
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.");
}
}

Trending nowThis is a popular solution!
Step by stepSolved in 2 steps

- Please help convert the following Java coding to C++ /LinkedList.java============== //Interface public interface LinkedList<T> { public boolean isEmpty(); public void insertAtStart(T data); public void insertAtEnd(T data); public void deleteAtStart(); public void deleteAtEnd(); public T getStartData(); public T getEndData(); public void deleteLinkedList(); } //===end of LinkedList.java===== //==LinkNode.java================ public class LinkNode<T> { private T data; private LinkNode<T> next; public LinkNode(T data,LinkNode<T> next) { this.setData(data); this.setNext(next); } public T getData() { return data; } public void setData(T data) { this.data = data; } public LinkNode<T> getNext() { return next; } public void setNext(LinkNode<T> next) { this.next = next; } } //==end of LinkNode.java========= //===singlyLinkedList.java============= public…arrow_forwardimport java.util.Scanner;import java.util.ArrayList;import java.util.StringTokenizer; public class PlantArrayListExample { // TODO: Define a printArrayList method that prints an ArrayList of plant (or flower) objects public static void main(String[] args) { Scanner scnr = new Scanner(System.in); String input; // TODO: Declare an ArrayList called myGarden that can hold object of type plant // TODO: Declare variables - plantName, plantCost, flowerName, flowerCost, colorOfFlowers, isAnnual input = scnr.next(); while(!input.equals("-1")){ // TODO: Check if input is a plant or flower // Store as a plant object or flower object // Add to the ArrayList myGarden input = scnr.next(); } // TODO: Call the method printArrayList to print myGarden }}arrow_forwardJAVA programming question i will attach images of the ourQueue code and the main I have to do the following: *create an ourQueue object, add the following sequence: *2,-3,4,-6,7,8,-9,-11 *create and ourStack object *write a program/ one loop that would result into the stack containing all of the negative number at the bottom and the positive numbers at the top. *outStack at the end should contain the following *[-3,-6,-9,-11,2,4,7,8]arrow_forward
- package edu.umsl.iterator;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.Iterator;public class Main {public static void main(String[] args) {String[] cities = {"New York", "Atlanta", "Dallas", "Madison"};Collection<String> stringCollection = new ArrayList<>(Arrays.asList(cities));Iterator<String> iterator = stringCollection.iterator();while (iterator.hasNext()) {System.out.println(/* Fill in here */);}}} Rewrite the while loop to print out the collection using an iterator. Group of answer choices iterator.toString() iterator.getClass(java.lang.String) iterator.remove() iterator.next()arrow_forwardUse java Implement a phone book using a linked list structure. In this phone book , you are going to store a name,lastname,email,and phone number Implement the folowing methods by using this class public class PhoneBookSinglyLinkedList { public PhoneBookNode head; public PhoneBookNode tail; public int size; public boolean isEmpty() {//todo implement this} public int size() {//todo implement this} public void printPhoneBook() {//todo implement this} public void add(Contact contact) {//todo implement this} public PhoneBookNode findByFirstName(String firstName) {//todo implement this} public List findAllByLastName(String lastName) {//todo implement this} public void deleteByFirstName(String firstName) {//todo implement this} public void deleteAllMatchingLastName(String lastName) {//todo implement this} public List findAll() {//todo implement this}arrow_forwardimport java.util.HashSet; import java.util.Set; // Define a class named LinearSearchSet public class LinearSearchSet { // Define a method named linearSearch that takes in a Set and an integer target // as parameters public static boolean linearSearch(Set<Integer> set, int target) { // Iterate over all elements in the Set for () { // Check if the current value is equal to the target if () { // If so, return true } } // If the target was not found, return false } // Define the main method public static void main(String[] args) { // Create a HashSet of integers and populate integer values Set<Integer> numbers = new HashSet<>(); // Define the target to search for numbers.add(3); numbers.add(6); numbers.add(2); numbers.add(9); numbers.add(11); // Call the linearSearch method with the set…arrow_forward
- Modify the Java class for the abstract stack type shown belowto use a linked list representation and test it with the same code thatappears in this chapter. class StackClass {private int [] stackRef;private int maxLen,topIndex;public StackClass() { // A constructorstackRef = new int [100];maxLen = 99;topIndex = -1;}public void push(int number) {if (topIndex == maxLen)System.out.println("Error in push–stack is full");else stackRef[++topIndex] = number;}public void pop() {if (empty())System.out.println("Error in pop–stack is empty"); else --topIndex;}public int top() {if (empty()) {System.out.println("Error in top–stack is empty");return 9999;}elsereturn (stackRef[topIndex]);}public boolean empty() {return (topIndex == -1);}}An example class that uses StackClass follows:public class TstStack {public static void main(String[] args) {StackClass myStack = new StackClass();myStack.push(42);myStack.push(29);System.out.println("29 is: " + myStack.top());myStack.pop();System.out.println("42 is:…arrow_forwardimport java.util.Scanner;import java.util.ArrayList; public class LabProgram { public static void main(String[] args) { Course cop3804=new Course(); String fn, ln; int score; String studentType; Scanner kb=new Scanner(System.in); studentType=kb.next(); while (!studentType.equals("q")) { fn = kb.next(); ln = kb.next(); score=kb.nextInt(); if (studentType.equals("R")) cop3804.addStudent(new Student(fn, ln, score)); else cop3804.addStudent(new HonorStudent(fn, ln, score)); studentType = kb.next(); } cop3804.print(); } } import java.util.ArrayList; public class Course { private ArrayList<Student> roster; //collection of Student objects public Course() { roster = new ArrayList<Student>(); } public void addStudent(Student s) { roster.add(s); } public void…arrow_forwardPeople find it easier to read time in hours, minutes, and seconds rather than just seconds. Write a program that reads in seconds as input, and outputs the time in hours, minutes, and seconds. Ex: If the input is: 4000 the output is: Hours: 1 Minutes: 6 Seconds: 40arrow_forward
- class Queue { private static int front, rear, capacity; private static int queue[]; Queue(int c) { front = rear = 0; capacity = c; queue = new int[capacity]; } static void queueEnqueue(int data) { if (capacity == rear) { System.out.printf("\nQueue is full\n"); return; } else { queue[rear] = data; rear++; } return; } static void queueDequeue() { if (front == rear) { System.out.printf("\nQueue is empty\n"); return; } else { for (int i = 0; i < rear - 1; i++) { queue[i] = queue[i + 1]; } if (rear < capacity) queue[rear] = 0; rear--; } return; } static void queueDisplay() { int i; if (front == rear) { System.out.printf("\nQueue is Empty\n"); return; } for (i = front; i < rear; i++) { System.out.printf(" %d <-- ", queue[i]); } return; } static void queueFront() { if (front == rear) { System.out.printf("\nQueue is Empty\n"); return; } System.out.printf("\nFront Element is: %d", queue[front]);…arrow_forwardWrite a java GUI program stacking Student objects of a class. Your program should have buttons for push, pop, and peek. Create a student class with these fields: name (type: String), age (type : int), major ( type: String), gpa (type: double) and gender (type:char). Use Java Stack class for implementation and use the GUI for user interaction. At run time books stored in stack should follow the last in First out (LIFO) of a stack.arrow_forwardPlease help with the following in Java Write a Java program create a stack with elements pushed 1, 2, 3, 4 and 5, removes the middle element. Note that you may use only push(), pop(), peek() and empty() methods of the stack.arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





