2010-11-09 24 views
0

我在嘗試生成具有特定屬性的一組對象的所有可能組合。問題是這些對象只能以某種方式組合,並且當你「驗證」整個對象組合時,它必須滿足一定的條件。具有特定加入規則的項目的建築物組合

對象數據存儲在SQL Server數據庫(我有完全的控制權,因此,如果需要將數據以不同的方式排列它可以改變)

我處理的對象的簡化版本是

class Item { 
public string Start {get;set;} 
public string End {get;set;} 
} 

如果我有這些對象例如列表:

  1. 項{開始= 「A」,結束= 「B」}
  2. 項{開始= 「B」,結束= 「C」}
  3. 項{開始= 「B」,結束= 「A」}

所得該組項目中的輸出將是:

A - >乙
乙 - 「ç
乙 - >甲
A - >乙 - 」ç

例如
項目1可以與項目2結合生成A→B→C
但是項目2不能與項目3結合,因爲項目2的結束值與項目3的開始值不匹配。

也有「總體」的規則,其中開始和結束的整體組合不能導致項目進行:「 A - > B - > A
(項目1與項目3)。

可以有多達5個這些項目連接在一起。

是否有任何通用的方法來做到這一點或算法,實現相同的結果?

任何幫助(甚至指針),將不勝感激。

+0

谷歌對於「定向圖」和循環,你手中有一個整體世界 – 2010-11-09 21:34:11

回答

相關問題