Sagen wir, es gibt eine Liste. Jedes Element in der Liste hat eine eindeutige ID.Suchen der niedrigsten unbenutzten eindeutigen ID in einer Liste
List [5, 2, 4, 3, 1]
Wenn ich einen Artikel aus dieser Liste entferne, gehört die eindeutige ID aus dem Artikel dazu.
List [5, 2, 3, 1]
Jetzt sagen, ich möchte ein anderes Element zur Liste hinzufügen, und geben Sie es die niedrigste eindeutige ID.
Was ist der einfachste Weg, um die niedrigste eindeutige ID zu erhalten, wenn ein neues Element zur Liste hinzugefügt wird?
Hier ist die Einschränkung: Ich würde es vorziehen, wenn ich nicht die eindeutige ID eines anderen Artikels beim Löschen eines Artikels neu zuweisen würde.
Ich weiß, es wäre einfach, die eindeutige ID zu finden, wenn ich eindeutige ID 5 an eindeutige ID 4 zugewiesen, wenn ich gelöscht 4. Dann könnte ich die Länge der Liste (5) und das neue Element mit dem einzigartigen erstellen ID mit dieser Nummer.
Gibt es einen anderen Weg, der nicht die gesamte Liste durchläuft?
EDIT:
Sprache ist Java, aber ich nehme an, ich bin für einen generischen Algorithmus suchen.
In welcher Sprache verwenden Sie? Außerdem: Ihre Verwendung des Tags 'uniqueidentifier' ist in diesem Fall wahrscheinlich falsch. Kannst du sehen, ob es ein anderes Tag gibt, das dir besser dient? – Tobiasopdenbrouw
Eine Prioritätswarteschlange ist eine großartige Datenstruktur, die man unabhängig lernen kann, und eine gute Lösung für das Problem. Ich frage mich jedoch, ob nur eine einfache Liste funktionieren würde. Gibt es einen bestimmten Grund, warum Sie das _lowest_ brauchen anstatt nur sicherzustellen, dass Sie Löcher wiederverwenden? – Dolphin