package Queue;
import Stack.DynamicArrayStack;
public class DynamicArrayQueue {
private int[] queueRep;
private int front, size, rear;
private static int CAPACITY = 4;
public static int MINCAPACITY = 1 << 15;
DynamicArrayQueue() {
queueRep = new int[CAPACITY];
front = 0;
size = 0;
rear = 0;
}
DynamicArrayQueue(int cap) {
queueRep = new int[cap];
front = 0;
size = 0;
rear = 0;
}
public void enQueue(int data) {
if (size == CAPACITY)
expand();
size++;
queueRep[rear] = data;
rear = (rear+1) % CAPACITY;
}
public int deQueue() {
size--;
int data = queueRep[front % CAPACITY];
queueRep[front] = Integer.MIN_VALUE;
front = (front + 1) % CAPACITY;
return data;
}
public int size() {
return size;
}
public boolean isEmpty() {
return (size == 0);
}
public boolean isFull() {
return (size == CAPACITY);
}
public void expand() {
int length = size();
int[] newQueue = new int[length << 1];
System.out.println("rear"+rear);
for (int i = front; i <= rear; i++){
System.out.println(queueRep[i]);
//here i- front to just make 0 value
newQueue[i - front] = queueRep[i % CAPACITY];
}
queueRep = newQueue;
front = 0;
rear = size - 1;
CAPACITY *= 2;
}
public DynamicArrayQueue queueReversal(DynamicArrayQueue queue) throws Exception{
DynamicArrayStack stack = new DynamicArrayStack(5);
while(!queue.isEmpty()){
stack.push(queue.deQueue());
}
while(!stack.isEmpty()){
queue.enQueue(stack.pop());
}
return queue;
}
public String toString() {
String result = "[";
for (int i = 0; i < size; i++) {
result += Integer.toString(queueRep[(front + i) % CAPACITY]);
if (i < size - 1) {
result += ",";
}
}
result += "]";
return result;
}
public static void main(String[] args) {
DynamicArrayQueue obj = new DynamicArrayQueue();
obj.enQueue(1);
obj.enQueue(2);
obj.enQueue(3);
System.out.println(obj);
//obj.deQueue();
//obj.deQueue();
System.out.println(obj);
}
}
import Stack.DynamicArrayStack;
public class DynamicArrayQueue {
private int[] queueRep;
private int front, size, rear;
private static int CAPACITY = 4;
public static int MINCAPACITY = 1 << 15;
DynamicArrayQueue() {
queueRep = new int[CAPACITY];
front = 0;
size = 0;
rear = 0;
}
DynamicArrayQueue(int cap) {
queueRep = new int[cap];
front = 0;
size = 0;
rear = 0;
}
public void enQueue(int data) {
if (size == CAPACITY)
expand();
size++;
queueRep[rear] = data;
rear = (rear+1) % CAPACITY;
}
public int deQueue() {
size--;
int data = queueRep[front % CAPACITY];
queueRep[front] = Integer.MIN_VALUE;
front = (front + 1) % CAPACITY;
return data;
}
public int size() {
return size;
}
public boolean isEmpty() {
return (size == 0);
}
public boolean isFull() {
return (size == CAPACITY);
}
public void expand() {
int length = size();
int[] newQueue = new int[length << 1];
System.out.println("rear"+rear);
for (int i = front; i <= rear; i++){
System.out.println(queueRep[i]);
//here i- front to just make 0 value
newQueue[i - front] = queueRep[i % CAPACITY];
}
queueRep = newQueue;
front = 0;
rear = size - 1;
CAPACITY *= 2;
}
public DynamicArrayQueue queueReversal(DynamicArrayQueue queue) throws Exception{
DynamicArrayStack stack = new DynamicArrayStack(5);
while(!queue.isEmpty()){
stack.push(queue.deQueue());
}
while(!stack.isEmpty()){
queue.enQueue(stack.pop());
}
return queue;
}
public String toString() {
String result = "[";
for (int i = 0; i < size; i++) {
result += Integer.toString(queueRep[(front + i) % CAPACITY]);
if (i < size - 1) {
result += ",";
}
}
result += "]";
return result;
}
public static void main(String[] args) {
DynamicArrayQueue obj = new DynamicArrayQueue();
obj.enQueue(1);
obj.enQueue(2);
obj.enQueue(3);
System.out.println(obj);
//obj.deQueue();
//obj.deQueue();
System.out.println(obj);
}
}
No comments:
Post a Comment