Powiedz, że istnieje lista. Każda pozycja na liście ma unikalny identyfikator.Znajdowanie najniższego nieużywanego unikalnego identyfikatora na liście
List [5, 2, 4, 3, 1]
Kiedy usuwam przedmiot z tej listy, id z nim związany jest unikalny identyfikator.
List [5, 2, 3, 1]
teraz, że chcę, aby dodać kolejną pozycję do listy, i nadać mu najmniejszą najniższą unikalny identyfikator.
Jaki jest najłatwiejszy sposób uzyskania najniższego unikalnego identyfikatora podczas dodawania nowego elementu do listy?
Oto jednak ograniczenie: wolałbym, aby podczas przypisywania elementu nie przypisać unikatowego id innego przedmiotu.
Zdaję sobie sprawę, że łatwo byłoby znaleźć unikalny identyfikator, jeśli przypisałbym unikalny identyfikator 5 do unikalnego identyfikatora 4, gdy usunąłem 4. Wtedy mógłbym uzyskać długość listy (5) i utworzyć nowy element z unikalnym id z tym numerem.
Czy istnieje inny sposób, który nie wymaga powtarzania całej listy?
EDIT:
Język jest Java, ale przypuszczam, że szukam algorytmu ogólnej.
W jakim języku się posługujesz? Również: twoje użycie znacznika "uniqueidentifier" jest prawdopodobnie niepoprawne w tym przypadku. Czy widzisz, czy jest inny tag, który będzie ci lepiej służył? – Tobiasopdenbrouw
Kolejka priorytetowa to doskonała struktura danych do nauki, niezależnie od tego, i dobre rozwiązanie problemu. Zastanawiam się jednak, czy wystarczyłaby prosta lista. Czy istnieje szczególny powód, dla którego potrzebujesz _odejścia_, zamiast tylko upewniać się, że ponownie wykorzystujesz dziury? – Dolphin