kruti-working-branch #14

Closed
kruti wants to merge 15 commits from kruti/Princeton1:kruti-working-branch into main
Showing only changes of commit 026b6c1d09 - Show all commits

View File

@ -7,12 +7,14 @@ import javax.annotation.Nonnull;
public class ArrayQueue<E> extends Queue<E>{
private E[] queueArray = (E[]) new Object[1];
private int startPtr = 0;
private int endPtr = 0;
private int startPtr;
private int endPtr;
private int size;
private int queueArrayLength = queueArray.length;
@Override
public boolean isEmpty() {
return startPtr >= endPtr;
return size == 0;
}
@Override
@ -20,25 +22,27 @@ public class ArrayQueue<E> extends Queue<E>{
if(isEmpty()){
return null;
}
E currentValue = queueArray[startPtr];
queueArray[startPtr++] = null;
if(size() < queueArray.length/4){
changeArraySize(queueArray.length/2);
E currentValue = queueArray[startPtr % queueArrayLength];
queueArray[startPtr++ % queueArrayLength] = null;
size--;
if(size() < queueArrayLength/4){
changeArraySize(queueArrayLength/2);
}
return currentValue;
}
@Override
public void enqueue(E element) {
queueArray[endPtr++] = element;
if(endPtr >= queueArray.length){
changeArraySize(queueArray.length*2);
queueArray[endPtr++ % queueArrayLength] = element;
size++;
if(size == queueArrayLength){
changeArraySize(queueArrayLength*2);
}
}
@Override
public int size() {
return endPtr - startPtr;
return size;
}
private void changeArraySize(int targetSize){
@ -50,6 +54,7 @@ public class ArrayQueue<E> extends Queue<E>{
queueArray[j++]=tempArray[i];
hitanshu marked this conversation as resolved Outdated

If the old queue is wrapped, then endPtr will be less than startPtr

If the old queue is wrapped, then endPtr will be less than startPtr
endPtr = size();
startPtr = 0;
queueArrayLength = queueArray.length;
}
@Nonnull