Provide a complete implementation of class LinkedStack and t
Provide a complete implementation of class LinkedStack and test it on the PalindromeFinder applcation (listed below).
package linkedstack;
import java.util.*;
public class PalindromeFinder {
   
 private String inputString;
   
 LinkedStack charStack = new LinkedStack();
   
 public PalindromeFinder(String str){
 inputString = str;
 fillStack();
 }
 private void fillStack(){
 for(int i = 0; i < inputString.length(); i++){
 charStack.push(inputString.charAt(i));
 }
}
   
 private String buildReverse(){
 StringBuilder result = new StringBuilder();
 while(!charStack.empty()){
 result.append(charStack.pop());
 }
 return result.toString();
 }
   
 public boolean isPalindrome(){
 return inputString.equalsIgnoreCase(buildReverse());
 }   
 }
Solution
package linkedstack;
public class LinkedStack {
    Node top;
   
    public LinkedStack() {
        top = null;
    }
   
    public void push(char character) {
        if(top == null) {
            top = new Node(character, null);
        } else {
            Node newNode = new Node(character, null);
            newNode.setNext(top);
            top = newNode;
        }
    }
   
    public char pop() {
        if(top != null) {
            char character = top.getCharacter();
            top = top.getNext();
            return character;
        }
       
        return 0;
    }
   
    public boolean isEmpty() {
        return top == null;
    }
   
    private class Node {
        char character;
        Node next;
       
        public Node(char character, Node next) {
            super();
            this.character = character;
            this.next = next;
        }
        public char getCharacter() {
            return character;
        }
        public Node getNext() {
            return next;
        }
        public void setNext(Node next) {
            this.next = next;
        }
    }
 }
 package linkedstack;
public class PalindromeFinder {
    private String inputString;
    LinkedStack charStack = new LinkedStack();
   
    public PalindromeFinder(String inputString) {
        this.inputString = inputString;
        fillStack();
    }
   
    private void fillStack() {
        for(int i = 0; i < inputString.length(); i++)
            charStack.push(inputString.charAt(i));
    }
   
    private String buildReverse() {
        StringBuilder result = new StringBuilder();
        while(!charStack.isEmpty()) {
            result.append(charStack.pop());
        }
        return result.toString();
    }
   
    public boolean isPalindrome() {
        return inputString.equalsIgnoreCase(buildReverse());
    }
}
 package linkedstack;
import java.util.Scanner;
public class PalindromeFinderTest {
    public static void main(String[] args) {
       
        Scanner in = new Scanner(System.in);
        System.out.println(\"Enter a string\");
        PalindromeFinder pf = new PalindromeFinder(in.next());
        System.out.println(\"IsPalindrome : \" + pf.isPalindrome());
        in.close();
    }
 }



