Таким образом, мы должны использовать предоставленные методы и переменные, не добавляя их, и что бы я ни пытался, я не могу заставить их работать. Я чрезвычайно новичок в очередях, поэтому, возможно, упускаю что-то маленькое. Вот мой код:
/**
* Int Queue
*/
public class Queue{
/** Max num elements*/
private int numElements;
/** Array to save elements **/
private int elements[];
/** Indice to last element */
private int last;
/** Constructor to init the state object */
Queue(int numElements){
this.numElements = numElements;
this.elements = new int[numElements];
this.last = -1;
}
/** Is empty the queue? */
public boolean isEmpty(){
return (last == -1);
}
/** Is full the queue */
public boolean isFull(){
return (numElements() == this.numElements);
}
/** Insert an element in the queue */
public void enqueue(int element) {
last++;
elements[last]= element;
}
/** Extract the element in the queue.
* There isn't control error */
public int dequeue() {
int elem = elements[0];
for (int x = 0; x < last; x++){
elements[x] = elements [x + 1];
}
last --;
return elem;
}
/** Returns the number of elements in the queue */
public int numElements(){
int number = 0;
for (int x = 0; x < this.last; x++) {
number++;
}
return number;
}
/** Print the elements in the queue*/
public void print(){
System.out.println("\nElements: ");
for(int b:elements){
System.out.println(b);
}
}
public static void main(String args[]){
// test the class
System.out.println("Test the queue class");
Queue que = new Queue(4);
que.enqueue(1);
que.enqueue(4);
que.enqueue(5);
que.print();
que.dequeue();
que.dequeue();
que.print();
} // main
} // Queue
и он выводит:
Test the queue class
Elements:
0
1
4
5
Elements:
4
5
5
5
Я не в состоянии заставить его напечатать правильные параметры. Сначала он должен вывести 1 4 5 (не ноль), а затем должен вывести 1 и ничего больше. Спасибо за помощь, спасибо!