如何解决客户主题列表的数据结构
| 我需要一个具有O(1)添加,查找和删除操作的数据结构,用于由客户端列表订阅的主题。 它需要支持的一些功能是:isTopicExists,isClientExists,getClientsForTopic,addClientForTopic,removeClientForTopic和getTopicsForClient。 给定一个主题名称,一个我们可以假定是唯一的客户端ID和一个客户端指针,什么是最好的数据结构?有哪些实现可用?解决方法
哈希映射似乎不是一个坏主意。它的预期复杂度为O(1),但是有很多冲突的悲观场景可以使您到达O(n),具体取决于实现链接的方式。对数搜索在这里很难被击败,因此我将寻求一种自平衡的二进制搜索树,甚至是std :: map(在大多数STL实现中为红黑树)。提高效率的唯一方法是使用向量(数组),但前提是您的ID较小或偏移但彼此靠近。你不能在这里打败数学。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。