我有麻烦做一个操作的算法,我想请求帮助。由于这是相当抽象的,这只是伪C#。算法来重新创建一个复杂的订单
我有对象,这是在列表清单:
Object A
Object B
Object C
这份名单来自于一个存储区,但用户可以通过两种方式在列表中创建新元素:复制一个对象或将两个主题合并在一起。 因此,用户交互后的名单可能是这样的:
Object A
Object A1 - Clone of A
Object B
Object C
Object BC - Merge of B and C
每一个新的对象存储,它的“父(S)”,所以它可能是追查每个对象的来源。 但有可能链复制并结合方式,使第三代可能是这样的:
Object A
Object A1 - Clone of A
Object B
Object A1B - Merge of A1 and B
Object A1B2 - Cloe onf A1b
Object C
Object BC - Merge of B and C
Object BC2 - Clone of BC
现在我坚持:有时候,这个名单必须从存储例1中regenarated虽然很容易重新创建“简单”的复制或合并对象,我无法想出一个好的算法来识别顺序,在哪个组合中必须重新创建。 查看迭代3:要重新创建A1B2,我必须首先克隆A1,然后将A1和B合并到A1B,然后克隆此对象。 是否有某种算法可以确定必要的顺序?
'ABC',它是'A + BC'还是'AB + C'?你如何区分'A(B1)'和'(AB)1'之间的AB1? –
可能是一个:(取决于用户的选择 我存储信息的immidiate帕内,所以美国广播公司将知道它的父母 –
如果你知道父母,是不是这是一个简单的情况递归地看着父母,然后扭转秩序? –