2011-05-09 77 views
1

我需要一個有效的數據結構來生成ID。這些ID應該能夠使用數據結構中的方法釋放。 ID發佈後,可以再次生成。數據結構必須始終檢索最低未使用的ID。
可以使用哪種有效的數據結構?高效的數據結構來獲得ID

+0

是id的有界?你需要什麼「快速」?它應該多快?在最壞情況或平均情況下是否必須「快速」? – amit 2011-05-09 09:15:22

+1

優先隊列? – falstro 2011-05-09 09:16:21

+0

@amit:是的,他們是有限的,直到他們被釋放。平均情況下快速就足夠了(只要它沒有啓示錄的情況)@roe:優先隊列將如何提供幫助?我無法將所有無界標識保留在隊列中。 – Dani 2011-05-09 09:20:54

回答

2

難道你不能只是增加一個整數,並返回,並適當的貨幣控制。如果某人在另一個已排序的數據結構中釋放一個整數後端存儲並返回該結果。如果返回的整數列表是空的,那麼你的返回就像讀,遞增,寫,返回一樣簡單。如果返回的整數列表不爲空,那麼只需讀取,返回並從返回的整數列表中移除第一個int