2016-12-17 64 views
0

我有令牌池(數字1-N)。一個過程可以讓一個令牌工作。雖然進程具有令牌,但其他進程無法使用該令牌。但是過了一段時間後,一個令牌的有效期到期後,它就變得免費了。例如,我們有令牌1-10。進程A取得令牌1,進程B取得令牌2.令牌2過期一段時間有效後。一段時間後,令牌陣列中會出現空洞,只有一些令牌可用,並且爲了搜索可用令牌,我必須搜索整個陣列。使用哪種數據結構/算法來最優地解決問題令牌管理算法

+0

N是恆定的還是動態的? – user3344003

回答

0

鏈接列表。使用每個數字一個節點初始化列表。當您需要分配令牌時,從列表中刪除頭部。當令牌過期時將它添加回列表中。列表中的標記將逐步失序,但這對你的問題無關緊要(我假設你不需要獲得最小的標記)

+0

啊!謝謝,好吧,如果我希望它也被排序。優先堆是否優化? – Prakhar

+0

是的,在這種情況下,你想使用堆 –