2011-05-09 79 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