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