Есть вот такой вот код реализующий очередь:
public class Queue {
private char q[];
private int putLoc, getLoc;
public Queue(int size) {
q = new char[size + 1]; // Зачем создавать массив на единицу больше?
putLoc = getLoc = 0;
}
public Queue(Queue obj) {
putLoc = obj.putLoc;
getLoc = obj.getLoc;
q = new char[obj.q.length];
for (int i = getLoc + 1; i <= putLoc; i++) { // Почему не используется нулевой индекс в массиве?
q[i] = obj.q[i];
}
}
public Queue(char a[]) {
putLoc = 0;
getLoc = 0;
q = new char[a.length + 1];
for (int i = 0; i < a.length; i++) {
put(a[i]);
}
}
public void put(char ch) {
if (putLoc == q.length - 1) {
System.out.println(" - Очередь заполнена!");
return;
}
q[++putLoc] = ch;
}
public char get() {
if (getLoc == putLoc) {
System.out.println(" - Очередь пуста!");
return (char) 0;
}
return q[++getLoc];
}
}
Вопросы:1. Почему в данной реализации не используется нулевой индекс в массиве? Для чего это сделано?
2. Зачем в методе get, возвращается (char) 0?
return (char) 0: