CS3343/3341 Analysis of Algorithms Spring 2012 |
Queues in Java and C
|
Queues in Java and C | |
---|---|
// Queue.java: simple circular queue of chars public class Queue { private int QSIZE = 4; private int q[] = new int[QSIZE]; private int head = 0; private int tail = 0; private int size = 0; public void enqueue(int x) { if (!isFull()) { size++; q[tail] = x; if (tail == QSIZE - 1) tail = 0; else tail++; } else System.out.println("Overflow"); } public int dequeue() { if (isEmpty()) { System.out.println("Underflow"); return -1; } size--; int x = q[head]; if (head == QSIZE - 1) head = 0; else head++; return x; } public boolean isEmpty() { return size == 0; } public boolean isFull() { return size == QSIZE; } public int getSize() { return size; } public int getFront() { if (!isEmpty()) return q[head]; else return -1; } public void dumpQ(int n) { System.out.println("n:" + n + ", size:" + size + ", head:" + head + ", tail:" + tail + ", frontitem:" + getFront()); } public static void main(String[] args) { Queue queue = new Queue(); queue.dumpQ(1); queue.enqueue(101);queue.dumpQ(2); queue.enqueue(202);queue.dumpQ(2); queue.enqueue(303);queue.dumpQ(2); System.out.println(queue.dequeue()); queue.dumpQ(3); System.out.println(queue.dequeue()); queue.dumpQ(3); System.out.println(queue.dequeue()); queue.dumpQ(4); System.out.println(queue.dequeue()); queue.dumpQ(4); queue.dumpQ(5); queue.enqueue(444);queue.dumpQ(6); queue.enqueue(555);queue.dumpQ(7); queue.enqueue(666);queue.dumpQ(8); queue.enqueue(777);queue.dumpQ(9); queue.enqueue(888);queue.dumpQ(10); System.out.println(queue.dequeue()); queue.dumpQ(11); System.out.println(queue.dequeue()); queue.dumpQ(12); System.out.println(queue.dequeue()); queue.dumpQ(13); System.out.println(queue.dequeue()); queue.dumpQ(14); System.out.println(queue.dequeue()); queue.dumpQ(15); } } | // queue.h: header file int dequeue(); void enqueue(int ); int isempty(); int isfull(); int getfront(); void dumpq(); | Common Output |
n:1, size:0, head:0, tail:0, frontitem:-1 n:2, size:1, head:0, tail:1, frontitem:101 n:2, size:2, head:0, tail:2, frontitem:101 n:2, size:3, head:0, tail:3, frontitem:101 101 n:3, size:2, head:1, tail:3, frontitem:202 202 n:3, size:1, head:2, tail:3, frontitem:303 303 n:4, size:0, head:3, tail:3, frontitem:-1 Underflow -1 n:4, size:0, head:3, tail:3, frontitem:-1 n:5, size:0, head:3, tail:3, frontitem:-1 n:6, size:1, head:3, tail:0, frontitem:444 n:7, size:2, head:3, tail:1, frontitem:444 n:8, size:3, head:3, tail:2, frontitem:444 n:9, size:4, head:3, tail:3, frontitem:444 Overflow n:10, size:4, head:3, tail:3, frontitem:444 444 n:11, size:3, head:0, tail:3, frontitem:555 555 n:12, size:2, head:1, tail:3, frontitem:666 666 n:13, size:1, head:2, tail:3, frontitem:777 777 n:14, size:0, head:3, tail:3, frontitem:-1 Underflow -1 n:15, size:0, head:3, tail:3, frontitem:-1 |