2016-04-05 1 views
-1

Ich habe eine verknüpfte Liste in C++ mit Auto-Objekten erstellt. Ein Autoobjekt hat ein paar verschiedene Attribute, aber in diesem Beispiel konzentrieren wir uns auf das Attribut Meilen pro Gallone (MPG). Dieses Attribut ist ein Int und einige Autos haben identische MPG.C++ Verknüpfte Liste - Drucken in sortierter Reihenfolge

Gibt es eine Möglichkeit für mich, diese Elemente in einer aufsteigenden Reihenfolge von MPG auszudrucken, ohne die verknüpfte Liste tatsächlich zu sortieren, dh die gesamte Liste n-mal durchlaufen, wobei n = die Größe der verknüpften Liste, Ausgabe eines Autos Objekt für den Benutzer bei jeder Iteration der Liste.

Ich entschuldige mich im Voraus, wenn meine Frage nicht im richtigen Format ist, bin ich neu hier.

+0

Make Kopie der ursprünglichen Liste oder einer Liste von Zeigern auf Objekte der ersten Liste, sortieren und drucken. Wird in kompakten Code –

Antwort

0

Ja, es gibt eine Möglichkeit, das zu tun.

  1. Machen Sie ein Array von falschen Werten gleich der Größe der Liste.
  2. Nehmen Sie ein neues Objekt vom Typ Auto und weisen Sie ihm den ersten Wert in der verketteten Liste zu.
  3. Iterieren Sie über die Liste, um ein Auto mit einem niedrigeren MPG zu finden. Wenn es gefunden wird, ersetzen Sie es durch dieses.
  4. Am Ende jeder Iteration, drucken Sie dieses Element und markieren Sie den entsprechenden Wert im falschen Array als wahr, so dass Sie es nicht erneut verwenden.

Beispiel:

CAR 1 -> 2 -> 3 -> 4 -> 5-> NULL 

MPG 15 25 10 41 21 

arr F F F F F 

nach jeder Iteration eins nach dem anderen arr Werte wird wahr (dh Sie sie gedruckt haben.)

+0

@ downvoter führen: Kommentare? – ayushgp

+0

es wird nicht schneller sein als das Sortieren. –

+0

@AndreiR. OP wollte es nicht sortieren. Er möchte sie in einer sortierten Reihenfolge mit dieser Art von Technik drucken. Lesen Sie die Fragedetails. – ayushgp