Estou lendo um livro de algoritmos e estrutura de dados em java do "Robert Lafore", e me surgiu uma duvida em dos métodos veja, o fonte completo:
package fila;
public class Queue2 {
private int maxSize;
private long[] queArray;
private int front;
private int rear;
// ---------------------------------------------------------------
public Queue2(int s) {
maxSize = s + 1; // isso é esquisito
queArray = new long[maxSize];
front = 0;
rear = -1;
}
// ---------------------------------------------------------------
public void insert(long j) {
if (rear == maxSize - 1) { // fila com indice no final do array
rear = -1; // efeito circular.
}
queArray[++rear] = j;
}
// ---------------------------------------------------------------
public long remove(){
long temp = queArray[front++];
if(front == maxSize){
front = 0;
}
return temp;
}
// ---------------------------------------------------------------
public long peek(){
return queArray[front];
}
// ---------------------------------------------------------------
public boolean isEmpty(){
return (rear + 1 == front || front+maxSize-1==rear);
}
public boolean isFull(){
return (rear+2==front)|| (front+maxSize-2==rear);
}
public int size(){
if(rear >= front){
return rear - front+1;
}else{
return (maxSize-front)+(rear+1);
}
}
public static void main(String[] args) {
Queue2 queue = new Queue2(1);
//
// queue.insert(11l);
// queue.insert(12l);
//
// queue.remove();
// queue.remove();
//
// queue.insert(45l);
// queue.insert(46l);
//
// queue.remove();
System.out.println(queue.size());
System.out.println(queue.isFull());
System.out.println(queue.isEmpty());
System.out.println("xxxx");
}
}
Bom pessoal, o livro propõe justamente a implementação sem contagem com a variavel numeroItens, ou seja é realmente para implementar desta forma, mais não vejo, como irá entrar
na segunda parte, " front+maxSize-1==rear", eu testei com varias inicializações, e não vejo a necessidade desta segunta parte depois do conectivo "||"
public boolean isEmpty(){
return (rear + 1 == front || front+maxSize-1==rear);
}
Obrigado.