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) {
MyStack 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);
}
}
}
Oke, 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.-KnightDNA-





