Note that there are some explanatory texts on larger screens.

plurals
  1. POQueue array implementation resize
    primarykey
    data
    text
    <p>I was required to create a simple queue array implementation with basic methods as enqueue, dequeue, isEmpty, and stuff like that. My only problem is that Im stuck when it comes to the resize method, because if I want to add more values to my queue (with fixed size because is an array) I do not know how to make it work and keep all the values in place. Everything works just in case you were wondering, the only thing is that doesnt work is my resize (the method wrote in here wasn't the only one I tried). I'm going to put my main method as well if you want to try it, hope you can help, thanks. <br> <br> Main Method: </p> <pre><code> public class MainQueue { public static void main(String[] args) { int capacity=10; Queue&lt;Integer&gt; queue = new Queue&lt;Integer&gt;(capacity); queue.enqueue(1); queue.enqueue(2); queue.enqueue(3); queue.enqueue(4); queue.enqueue(5); queue.enqueue(6); queue.enqueue(7); queue.enqueue(8); queue.enqueue(9); queue.enqueue(10); System.out.println("Queue: "+ queue); //WORKS SO FAR queue.enqueue(11); //11 is placed at the beginning of the queue //instead at the end and my last value is null (?) </code></pre> <p>Class queue: <br> </p> <pre><code> import java.util.NoSuchElementException; public class Queue &lt;E&gt;{ private E[] elements;//array in generic private int front;//first element or front of the queue private int back;//last element or back of the queue private int capacity; //capacity of the queue private int count; //indicates number of elements currently stored in the queue @SuppressWarnings("unchecked") public Queue(int size) { capacity = size; count = 0; back = size-1; front = 0; elements =(E []) new Object[size]; //array empty } //Returns true if the queue is empty or false public boolean isEmpty() { return count==0;//means its true } //Add elements to the queue public void enqueue(E item) { if(count == capacity) { resize(capacity*2); // System.out.println("Queue is full"); } back =(back+1) % capacity; //example back=(0+1)%10=1 elements[back]=item; //elements[0]=0 //item=elements[count]; count++; } //Public resize public void resize(int reSize){ E[] tmp = (E[]) new Object[reSize]; int current = front; for (int i = 0; i &lt; count; i++) { tmp[i] = elements[current]; current = (current + 1) % count; } elements = tmp; } //Dequeue method to remove head public E dequeue() { if(isEmpty()) throw new NoSuchElementException("Dequeue: Queue is empty"); else { count--; for(int x = 1; x &lt;= count; x++) { elements[x-1] = elements[x]; } capacity--; return (E) elements; } } //peek the first element public E peek() { if(isEmpty()) { throw new NoSuchElementException("Peek: Queue is empty"); } else return elements[front]; } //Print queue as string public String toString() { if(isEmpty()) { System.out.println("Queue is empty."); //throw new NoSuchElementException("Queue is empty"); } String s = "["; for(int i = 0; i &lt;count; i++) { if(i != 0) s += ", "; s = s + elements[i];// [value1,value2,....] } s +="]"; return s; } public void delete() { //Delete everything count = 0; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload