如何实现一个数据结构,它接受一个整数及其权重,以便对它的查询返回该整数的权重%倍?

时间:2015-11-25 02:45:42

标签: data-structures tree computer-science implementation

输入数据作为数字后跟权重。例如,如果数据结构输入了数据(1,9)和(2,1),那么它应该返回数字1的90%的时间和数字2的10%的时间。

此实施应使用哪种数据结构?此外,查询函数的基本代码是什么样的?

编辑:我正在考虑一棵树,它存储每个子树的累积总和。说我有(1,4),(2,7),(3,1)和(4,11) 树看起来像:
          23个
         / \
      11 12
      / \ / \
    4 7 1 11

我不知道这棵树是否应该是二进制的。此外,将权重存储在树中并将它们映射到数字或以某种方式使用作为数据输入给出的数字是否有意义?

1 个答案:

答案 0 :(得分:0)

从值/重量元组(1, 4), (2, 7), (3, 1), (4, 11)制作具有累计权重总和的数组

[(1, 4), (2, 11), (3, 12), (4, 23)]

并通过累积权重字段的二进制搜索获得值。

问题不清楚,查询应该如何工作 - 随机?