2016-04-09 5 views
0

Wir haben eine Zuweisung der Implementierung der Prioritätswarteschlange mit verknüpften Listen gegeben. Die Logik in meinen Gedanken ist, dass, wenn ich 2 Infoteile zum Knoten hinzufüge, eine für die zu druckenden Daten & andere zum Speichern eines Schlüssels, um den Knoten zu priorisieren, dann kann ich den Knoten nach der Priorität aus der Warteschlange.mit mehr als einem Info-Teil in LinkedList

Jetzt bin ich nur verwirrt, ob es legal ist, zwei Infoteile zu einem einzigen Knoten hinzuzufügen?

Wie

private class Node { 

    private int priority; 
    private String job; 
    private Node Next; 

} 

Wenn es sich um eine doppelt verknüpfte Liste ist dann der Rückwärtszeiger ist auch notwendig.

+0

Was Sie zu fragen scheinen, ist, ob Sie mehr als ein Feld (mit Ausnahme von Zeigern zu anderen Knoten in der Liste) zu einem Node-Objekt hinzufügen können - ist das der Fall? Wenn ja, dann kannst du ja zumindest in Java, wie das aussieht. Genauer gesagt - haben Sie versucht, die beiden Felder hinzuzufügen und zu sehen, ob es funktioniert? Wenn nicht, auf welche Weise funktioniert es nicht? – elhefe

Antwort

0

Es ist sicherlich in Ordnung, zwei Informationen in einem Knoten in einer verknüpften Liste zu speichern. Wenn Sie eine Prioritätswarteschlange erstellen, benötigen Sie wahrscheinlich eine Art von Prioritätsschlüssel, um Ihre Warteschlange zu ordnen, sowie einen "Wert" (auch bekannt als "Daten" oder "Nutzlast") Knoten hält für die spätere Verwendung fest.

In Ihrem Fall ist der String der Wert und der Int der Schlüssel/die Priorität. Sie können sich diesen Knoten neben seinem Schlüssel als eine Information (den String) vorstellen.

Wenn das nicht genau das ist, wonach Sie suchen, könnten Sie eine flexiblere verknüpfte Liste erstellen, die alle Daten in ihrem Knoten enthalten könnte, einschließlich eines einzelnen Datenelements, das sowohl einen Int als auch einen String enthält. Dies könnte daher für eine Prioritätswarteschlange oder irgendeine andere Art von abstrakter Datenstruktur, die auf einer verknüpften Liste aufgebaut ist, verwendet werden.

Ihr Code sieht wie Java aus. Wenn Sie also wissen möchten, wie Sie diesen flexibleren Knoten in Java erstellen können, können Sie unter Generics in Java nachsehen.

+0

Dank Matt Farrugia, ich bin absichtlich nicht mit Generika, aber wenn ich Generics wie von Ihnen empfohlen, immer noch nur die Info-Teil, die ich verwenden, um Daten zu einem generischen Datentyp gehalten wird, wird der Schlüssel Teil immer noch vorhanden sein Um den Knoten Vorrang zu geben, habe ich recht? –

+0

Sie können Generics für den Informationsteil verwenden, den Sie verwenden, um Daten zu behalten, oder sowohl für die Informationen als auch für die Priorität. Beide Optionen sind in Ordnung, wenn Sie eine Prioritätswarteschlange mit Ihrer verknüpften Liste erstellen. –