Lanjutan dari post sebelumnya.
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 MyStack<t> extends MyList<t> {
//ukuran stack
private int size;
//puncak stack
private ElmtList<t> 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<t> node = new ElmtList<t>(item);
super.insertFirst(node);
top = first;
size++;
}
public T pop() throws MyStackException {
T item = null;
if(isEmpty()) {
throw new MyStackException("Stack kosong");
} else {
ElmtList<t> 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<integer> S1 = new MyStack<integer>();
MyStack<character> S2 = new MyStack<character>();
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
. Semoga berguna bagi Anda.
-KnightDNA-






0 Tanggapan ke “Iseng: Linked-List Generik dan Stack Generik dengan Representasi Linked-List dalam Bahasa Java (bagian II)”