Stack
Kode Program :
Class AppMain
package appmain;
import java.util.Scanner;
public class AppMain {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print(" Masukkan kata: ");
String kata = scanner.nextLine();
cPalindrome palindrome = new cPalindrome(kata);
if (palindrome.isPalindrome()) {
System.out.println("");
System.out.println("|=====================================|");
System.out.println("| Kata "+"'"+kata +"'"+" adalah palindrom ");
System.out.println("|=====================================|");
} else {
System.out.println("");
System.out.println("|=====================================|");
System.out.println("| Kata "+"'"+kata+"'"+" bukan palindrom ");
System.out.println("|=====================================|");
}
}
}
Class cNode
package appmain;
public class cNode {
char data;
cNode next;
public cNode(char data) {
this.data = data;
this.next = null;
}
}
Class cPalindrome
package appmain;
public class cPalindrome {
private String kata;
public cPalindrome(String kata) {
this.kata = kata;
}
public boolean isPalindrome() {
cStack stack = new cStack();
for (int i = 0; i < this.kata.length(); i++) {
char c = this.kata.charAt(i);
stack.push(c);
}
for (int i = 0; i < this.kata.length(); i++) {
char c = stack.pop();
if (c != this.kata.charAt(i)) {
return false;
}
}
return true;
}
}
Class cStack
package appmain;
public class cStack {
cNode top;
public cStack() {
this.top = null;
}
public void push(char data) {
cNode new_node = new cNode(data);
new_node.next = this.top;
this.top = new_node;
}
public char pop() {
if (this.top == null) {
return '\0';
} else {
char popped_data = this.top.data;
this.top = this.top.next;
return popped_data;
}
}
public boolean isEmpty() {
return this.top == null;
}
}
Output :
Komentar
Posting Komentar