Provide a complete implementation of class LinkedStack and t

Provide a complete implementation of class LinkedStack and test it on the ParenChecker applcation (listed below).


package linkedstack;

import java.util.EmptyStackException;

/** Class to check for balanced parentheses.
* @author Koffman & Wolfgang
**/
public class ParenChecker {

// Constants
/** Set of opening parenthesis characters. */
private static final String OPEN = \"([{\";
/** Set of closing parenthesis characters, matches OPEN. */
private static final String CLOSE = \")]}\";

public static boolean isBalanced(String expression) {
// Create an empty stack.
LinkedStack s = new LinkedStack();
boolean balanced = true;
try {
int index = 0;
while (balanced && index < expression.length()) {
char nextCh = expression.charAt(index);
if (isOpen(nextCh)) {
s.push(nextCh);
} else if (isClose(nextCh)) {
char topCh = (char) s.pop();
balanced =
OPEN.indexOf(topCh) == CLOSE.indexOf(nextCh);
}
index++;
}
} catch (EmptyStackException ex) {
balanced = false;
}
return (balanced && s.empty());
}

/**
* Method to determine whether a character is one of the
* opening parentheses.
* @param ch Character to be tested
* @return true if ch is one of the opening parentheses
*/
private static boolean isOpen(char ch) {
return OPEN.indexOf(ch) > -1;
}

/**
* Method to determine whether a character is one of the
* closing parentheses.
* @param ch Character to be tested
* @return true if ch is one of the closing parentheses
*/
private static boolean isClose(char ch) {
return CLOSE.indexOf(ch) > -1;
}
}

Solution

Plase find my implementation.

Please let me know

############## LinkedStack.java ################

import java.util.EmptyStackException;

public class LinkedStack{

   private int n; // size of the stack

   private Node first; // top of stack

   // helper linked list class

   private class Node {

       private char item;

       private Node next;

   }

   /**

   * Initializes an empty stack.

   */

   public LinkedStack() {

       first = null;

       n = 0;

   }

   /**

   * Is this stack empty?

   * @return true if this stack is empty; false otherwise

   */

   public boolean empty() {

       return first == null;

   }

   /**

   * Returns the number of items in the stack.

   * @return the number of items in the stack

   */

   public int size() {

       return n;

   }

   /**

   * Adds the item to this stack.

   * @param item the item to add

   */

   public void push(char item) {

       Node oldfirst = first;

       first = new Node();

       first.item = item;

       first.next = oldfirst;

       n++;

   }

   /**

   * Removes and returns the item most recently added to this stack.

   * @return the item most recently added

   * @throws java.util.EmptyStackException if this stack is empty

   */

   public char pop() {

       if (empty()) throw new EmptyStackException();

       char item = first.item; // save item to return

       first = first.next; // delete first node

       n--;

       return item; // return the saved item

   }

   /**

   * Returns (but does not remove) the item most recently added to this stack.

   * @return the item most recently added to this stack

   * @throws java.util.EmptyStackException if this stack is empty

   */

   public char peek() {

       if (empty()) throw new EmptyStackException();

       return first.item;

   }

}

############################## ParenChecker.java #####################

import java.util.EmptyStackException;

/** Class to check for balanced parentheses.

* @author Koffman & Wolfgang

**/

public class ParenChecker {

   // Constants

   /** Set of opening parenthesis characters. */

   private static final String OPEN = \"([{\";

   /** Set of closing parenthesis characters, matches OPEN. */

   private static final String CLOSE = \")]}\";

   public static boolean isBalanced(String expression) {

       // Create an empty stack.

       LinkedStack s = new LinkedStack();

       boolean balanced = true;

       try {

           int index = 0;

           while (balanced && index < expression.length()) {

               char nextCh = expression.charAt(index);

               if (isOpen(nextCh)) {

                   s.push(nextCh);

               } else if (isClose(nextCh)) {

                   char topCh = (char) s.pop();

                   balanced =

                           OPEN.indexOf(topCh) == CLOSE.indexOf(nextCh);

               }

               index++;

           }

       } catch (EmptyStackException ex) {

           balanced = false;

       }

       return (balanced && s.empty());

   }

   /**

   * Method to determine whether a character is one of the

   * opening parentheses.

   * @param ch Character to be tested

   * @return true if ch is one of the opening parentheses

   */

   private static boolean isOpen(char ch) {

       return OPEN.indexOf(ch) > -1;

   }

   /**

   * Method to determine whether a character is one of the

   * closing parentheses.

   * @param ch Character to be tested

   * @return true if ch is one of the closing parentheses

   */

   private static boolean isClose(char ch) {

       return CLOSE.indexOf(ch) > -1;

   }

  

   public static void main(String[] args) {

      

       String str = \"{[public()]exmpty}\";

       System.out.println(isBalanced(str));

   }

}

Provide a complete implementation of class LinkedStack and test it on the ParenChecker applcation (listed below). package linkedstack; import java.util.EmptySta
Provide a complete implementation of class LinkedStack and test it on the ParenChecker applcation (listed below). package linkedstack; import java.util.EmptySta
Provide a complete implementation of class LinkedStack and test it on the ParenChecker applcation (listed below). package linkedstack; import java.util.EmptySta
Provide a complete implementation of class LinkedStack and test it on the ParenChecker applcation (listed below). package linkedstack; import java.util.EmptySta
Provide a complete implementation of class LinkedStack and test it on the ParenChecker applcation (listed below). package linkedstack; import java.util.EmptySta

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site