Algoritma dan Struktur Data
Resmi
Praktikum Queue
-
Praditya Nafiis Muhammad
2 D3 IT B
2103181032
Yuliana Setyowati
23 November 2019
A. Queue dengan Array
Listing Program
package queue;
public interface Queue<T> {
public abstract boolean isEmpty();
public T peek();
public T pop();
public void push(T item);
public int size();
}
package queue;
public interface BQueue<T> extends Queue<T> {
boolean full();
}
package queue;
import java.util.Arrays;
public class ArrQueue<T> implements BQueue<T> {
private T Arr[];
private int qfront = 0;
private int qback = 0;
private int qcapacity = 0;
private int size;
public ArrQueue() {
Arr = (T[]) new Object[5];
qcapacity = 5;
}
public ArrQueue(int size) {
Arr = (T[]) new Object[size];
qcapacity = size;
}
@Override
public boolean full() {
return size == qcapacity;
}
@Override
public boolean isEmpty() {
return (size == 0);
}
@Override
public T peek() {
return Arr[qfront];
}
@Override
public T pop() {
T temp = Arr[qfront];
Arr[qfront] = null;
qfront = (qfront + 1) % qcapacity;
size--;
return temp;
@Override
public void push(T item) {
if (size < qcapacity) {
Arr[qback] = item;
qback = (qback + 1) % qcapacity;
size++;
} else {
System.out.println("Queue Penuh!");
}
@Override
public int size() {
return size;
}
@Override
public String toString() {
return "ArrQueue{" + "Arr=" + Arrays.toString(Arr) + ", qfront=" +
qfront + ", qback=" + qback + ", qcapacity=" + qcapacity + ", size=" + size
+ '}';
}
}
package queue;
import java.util.NoSuchElementException;
public class ArrQueueTest {
public static void main(String[] args) {
try {
ArrQueue<Integer> arr = new ArrQueue<Integer>(5);
arr.push(1);
arr.push(4);
arr.push(10);
arr.push(2);
arr.push(7);
System.out.println(arr);
arr.pop();
arr.pop();
System.out.println(arr);
arr.push(17);
arr.push(3);
arr.push(27);
System.out.println(arr);
arr.push(61);
System.out.println(arr);
} catch (NoSuchElementException e) {
System.out.println(e.getMessage());
}
}
}
Output Program
B. Priority Queue
Listing Program
package PriorityQueue;
import java.util.*;
public class PriorityQueueDemo {
public static void main(String[] args) {
PriorityQueue<String> stringQueue;
stringQueue = new PriorityQueue<String>();
stringQueue.add("ab");
stringQueue.add("abcd");
stringQueue.add("abc");
stringQueue.add("a");
while (stringQueue.size() > 0) {
System.out.println(stringQueue.remove());
}
}
}
Output Program
C. Priority Queue Produk
Listing Program
package PriorityQueue;
import java.util.PriorityQueue;
public class Main {
public static void main(String args[]) {
PriorityQueue<Product> pq = new PriorityQueue<Product>(3);
pq.add(new Product("A", ProductQuality.Low));
pq.add(new Product("B", ProductQuality.High));
pq.add(new Product("C", ProductQuality.Medium));
Product m;
while ((m = pq.poll()) != null) {
System.out.println(m.name + " Priority: " + m.priority);
}
PriorityQueue<Product> pqRev = new PriorityQueue<Product>(3, new
MessageComparator());
pqRev.add(new Product("D", ProductQuality.Low));
pqRev.add(new Product("E", ProductQuality.High));
pqRev.add(new Product("F", ProductQuality.Medium));
while ((m = pqRev.poll()) != null) {
System.out.println(m.name + " Priority: " + m.priority);
}
}
}
Output Program