Example #1
0
    private void add(PQueueEntry a) {
        
        if (head != null) {
            a.setNext(head);
            head.setPrev(a);
        }

        head = a;
        size++;
    }
Example #2
0
    public GameObject removeMin()
    {
        PQueueEntry a = head;
        PQueueEntry minEntry = new PQueueEntry(null , int.MaxValue);

        while (a != null)
        {
           if(a.getPriority() <= minEntry.getPriority())
            {
                minEntry = a;       
            }
            a = a.getNext();
        } 

        delete(minEntry);
        return minEntry.getGameObject();
    }
Example #3
0
    private void delete(PQueueEntry a)
    {

        if (a.getPrev() == null && a.getNext() == null)
        {
            head = null;
        } else {
            if (a.getPrev() == null) {
                a.getNext().setPrev(null);
                head = a.getNext();
            } else {
                a.getPrev().setNext(a.getNext());
            } if (a.getNext() == null) {
                a.getPrev().setNext(null);
            } else {
                a.getNext().setPrev(a.getPrev());
            }
        }

        size--;
    }
Example #4
0
 public PriorityQueue() {
     head = null;
     size = 0;
 }
Example #5
0
    public int minPriority()
    {
        PQueueEntry a = head;
        PQueueEntry minEntry = new PQueueEntry(null, int.MaxValue);

        while (a != null)
        {
            if (a.getPriority() < minEntry.getPriority())
            {
                minEntry = a;
            }
            a = a.getNext();
        }

        return minEntry.getPriority();
    }
Example #6
0
 public void setPrev(PQueueEntry newPrev)
 {
     prev = newPrev;
 }
Example #7
0
 public void setNext(PQueueEntry newNext) {
     next = newNext;
 }
Example #8
0
 public PQueueEntry(GameObject gameObj, int priority)
 {
     this.gameObj = gameObj;
     this.priority = priority;
     this.next = null;
     this.prev = null;
 }