流数据的最佳数据结构

时间:2019-09-17 20:15:32

标签: python containers

我有[id, name, act, value, type]形式的数据流。

id是整数,name是字符串,act可以是'add','update'或'delete',value是整数,{{ 1}}是typeL。我们只能添加一次R,执行多次更新,然后删除id。我显然在寻找一种数据结构,该结构可以让我有效地插入那些数据。

我还需要能够尽可能快地每次获得id的最高L值和name的最低R值。

我相信我将需要使用堆来在恒定时间内获得name的{​​{1}}和min值。我的问题是,我无法找到一种方法来同时删除和更新现有数据。

2 个答案:

答案 0 :(得分:0)

这里的措词有点不清楚。让我尝试改写一下:您正在寻找一个良好的数据结构,以便按照上述形式进行一系列操作,就可以添加,删除或更新项目(使用其ID号找到)。而且,您还希望维护一些有关整个数据结构的摘要统计信息,例如最高的L和最低的R值。

听起来正确吗?

如果您的身份证号码不在特定范围内,那么词典字典听起来可能是正确的答案;如果词典列表不正确,则听起来似乎是一个正确的答案。

答案 1 :(得分:0)

排序使这成为另一种问题。因此,您正在寻找一种在数据结构中按字符串名称按字母顺序排序的方法,在数据结构中添加和减去数据项?一种常见的实现方法是使用二进制搜索树。 BST将使您在树中具有n个元素的O(log(n))的插入时间复杂度。在每个元素上,您都可以存储其他数据。然后,您可以分别维护最高的L和最低的R值,并在每次添加的值超过这些值中的一个时更新这些值。如果删除的值等于这些限制之一,则必须遍历整个数据结构以获取新的限制值。