Provide a complete implementation of class LinkedStack and test it on the Palind
ID: 3794090 • Letter: P
Question
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());
}
}
Explanation / Answer
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();
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.