dimanche 3 mai 2015

Queue (Array) leeren

Bei einem Queue-Script würde ich gerne die Methode clear einbauen, welche die Queue leert.
Allerdings komme ich nicht auf enen grünen Zweig. Hier ist was ich habe:
Code:

public class Queue {

    private int[] object;
    private int front;
    private int rear;
    private int queueSize;
   
    public Queue(){
        queueSize = 3;
        object = new int[queueSize];
        front = -1;
        rear = -1;
               
    }
   
    public void push  (int data){
        if ((front + 1) >= queueSize)
            resize();
        object[++front] =data;

    }
   
    public Integer pop(){
        if(front > rear)
            return object[++rear];

        return null;
       
    }
   
    public boolean isEmpty(){
        return front <=rear;
       
    }
   
    private void resize(){
        int[] temp = object;
        queueSize = queueSize*2;
        object = new int [queueSize];
       
        for(int i = 0; i <= front; i++)
            object[i] = temp[i];
    }
   

    public void clear(){
        object[1] = object[object.length - object.length];  //Meine Logik: Inhalt-Inhalt=Leer
       
    }


}

Was mir auch nicht ganz klar ist:In der resize() methode wird ein neues grösseres Array angelegt, falls das erste zu klein ist. Wie macht man am besten eine saubere clear()Methode die das berücksichtigt?
???:L


Queue (Array) leeren

0 commentaires:

Enregistrer un commentaire