Hirdetés

Keresés

Új hozzászólás Aktív témák

  • #74220800

    törölt tag

    válasz Sirpi #9322 üzenetére

    Amúgy a feladatom az lenne, hogy saját kezűleg kell implementalni egy priorityqueque-t, minheap struktúrával,
    az alábbi interface segitsegevel:

    /**
    * Manages elements within a priority queue. All Elements in this queue must
    * implement the Comparable interface. If a element is requested from this data
    * structure the smallest one is returned. If there are multiple smallest
    * elements, one of them must be returned.
    */
    public class PriorityQueue<T extends Comparable<T>> {
    /**
    * @param maxElements The maximum number of elements this queue can hold.
    */
    public PriorityQueue(int maxElements);

    /**
    * Add e to the queue.
    *
    * @param e The element which sould be inserted (at the correct position) into the queue.
    * @throws IllegalStateException if the queue is already full
    */
    public void add(T e) throws IllegalStateException;

    /**
    * Returns and removes the smallest element in the queue.
    *
    * @return the smallest element
    * @throws IllegalStateException if the queue is empty
    */
    public T pop() throws IllegalStateException;

    /**
    * Return the current number of elements in the queue.
    *
    * @return the number of elements
    */
    public int size();
    }

    Es nem tudom, hogy milyen classot használhatnék e szerint az adatok belső menedzselésére.
    A baj az, hogy a beepitett java PriorityQueue is minheapet használ.

    LinkedList<E> ill. ArrayList<E> szeretnek használni hozza.

    Vagy a fenti feladat azt jelenti, hogy a bepitett PriorityQueue-hoz felülirom a pop() es add() metódusokat?
    De akkor meg nem tudok indexeket hasznalni, és az algoritmus alapján szerintem mindenképpen olyan kell, ami indexelhető. Nem tudom ... :(

  • #74220800

    törölt tag

    válasz Sirpi #9322 üzenetére

    Na várj:

    Szóval azt mondod, hogy ha a classom első sorában csak az arraylistet húzom be, mondjuk így:

    import java.util.ArrayList;

    és utána így példányosítok:

    PriorityQueue<Integer> intMyQueue = new PriorityQueue<Integer>(10);

    Akkor az én classom lesz meghívva és nem a beépített?

  • emvy

    félisten

    válasz Sirpi #9322 üzenetére

    Meg persze lehet ugyabba a package-be rakni, akkor a classloadingtol fugg, hogy melyik lesz hasznalatban.

Új hozzászólás Aktív témák