Sekarang adalah kelas Stack dan StackException (letakkan keduanya sebagai dua kelas public di dua file yang berbeda)
/** * @author Aprian Diaz Novandi (13505102) * @version 1.0 * @since 13 September 2008 * @see MyList * @throws MyStackException * Implementasi kelas stack dengan representasi linked-list di Java */ package MyCollection; public class MyStackextends MyList { //ukuran stack private int size; //puncak stack private ElmtList top; //ctor public MyStack() { super(); top = first; size = 0; } public boolean isEmpty() { return top == null; } public int getSize() { return size; } public T peek() { return top.getInfo(); } public void push(T item) { ElmtList node = new ElmtList (item); super.insertFirst(node); top = first; size++; } public T pop() throws MyStackException { T item = null; if(isEmpty()) { throw new MyStackException("Stack kosong"); } else { ElmtList node = super.deleteFirst(); item = node.getInfo(); top = first; size--; } return item; } public String toString() { String retval = super.toString(); return retval; } }
package MyCollection; public class MyStackException extends Exception { private String message; public MyStackException(String _message) { super(_message); message = _message; } public String getMessage() { return message; } public String toString() { return "MyStackException: " + getMessage(); } public void printStackTrace() { System.out.println(this); super.fillInStackTrace(); } }
Selanjutnya kelas StackDriver untuk pengujian
import MyCollection.MyStack; import MyCollection.MyStackException; public class MyStackDriver { public static void main(String[] args) { MyStackOke, itu dulu keisengan saya di sela kebosanan mengerjakan TA untuk bagian pertama ini. Sampai jumpa di postingan saya selanjutnya tentang InfixToPostfix. Doakan TA saya lancar ya :D. Semoga berguna bagi Anda.S1 = new MyStack (); MyStack S2 = new MyStack (); try { S1.push(100); S1.push(101); S1.push(102); S2.push('('); int item = S1.pop(); int itemTop = S1.peek(); System.out.println("Item yang di-pop: " + item); System.out.println("Item di top of stack: " + itemTop); } catch (MyStackException e) { e.printStackTrace(); } finally { System.out.println(S1); System.out.println(S2); } } }
-KnightDNA-