假設有一個列表。列表中的每個項目都有一個唯一的ID。查找列表中最低的未使用的唯一ID
List [5, 2, 4, 3, 1]
當我從這個列表中刪除一個項目時,該項目中的唯一標識符將與它一起使用。
List [5, 2, 3, 1]
現在說我想添加另一個項目的列表,並給它最低的唯一ID。
向列表中添加新項目時,獲取最低唯一標識的最簡單方法是什麼?
雖然這是限制:如果我在刪除項目時沒有重新分配另一個項目的唯一標識,我更喜歡它。
我意識到如果我在刪除4時重新分配了獨特的ID 5到唯一的ID 4,那麼我很容易找到唯一的ID。然後我可以得到列表的長度(5)並創建具有唯一性的新項目身份證號碼。
那麼還有另一種方式,那不涉及遍歷整個列表?
編輯:
語言是Java,但我想我在尋找一個通用的算法。
你在用什麼語言?另外:在這種情況下,使用'uniqueidentifier'標記可能不正確。你能看看是否有另一個標籤能更好地爲你服務? – Tobiasopdenbrouw 2010-08-09 11:39:29
優先級隊列是一個偉大的數據結構,無論何時學習,都是一個很好的解決方案。不過,我想知道,如果只是一個簡單的列表將工作。爲什麼需要_lowest_而不是僅僅確保重用漏洞,是否有特定的原因? – Dolphin 2010-08-09 14:09:20