我们最近遇到了这个问题。
我们有n种不同的产品类型,其中每种产品类型可能具有任意数量(> = 0)的产品。我们要对列表中的所有产品(所有类型的所有产品)进行“排序”,但是,某些产品类型将以周期性的顺序插入列表中。
我想用一个例子来解释: 我们有3种不同的产品类型(ProdA,ProdB,ProdC),3个单位的ProdA,4个单位的ProdB和2个单位的ProdC。 ProdC将以2的间隔插入列表中。
一个订购可能是:
看看,因为ProdC是周期性的并且只有2个单位,所以当我们用完ProdC单位时会重复这些单位。
如果删除了一个单位的ProdA和一个单位的ProdB,我们希望列表看起来像这样:
我们不想“重新计算”整个列表。
我的问题是:是否有一种通用的算法来执行此操作,其中包括动态“重新排序”?
谢谢!
答案 0 :(得分:1)
不。修改列表后,非周期性ProdA,ProdB的位置就会更改。因此,如果列表是数组,则其内存已更改。如果列表是链接列表,则节点指针会更改。
我建议使用两个列表:一个带有ProdA和ProdB,另一个带有ProdC。您可以在需要时构建合并列表。