2013-04-16 64 views
2

我有一個可以容納孩子的物體,所以每個物體的孩子都有孩子。所以想象是一個3級分層樹。但是這個數字並不是固定的,它可以是4,5甚至6個等級。我已經有了一個BindingList,它是所有根節點的列表。有沒有人知道一個簡單的方法將其轉換爲表格?所以每個級別將是層次結構的一列。 創建列很簡單,但我不確定如何在不知道需要多少個循環的情況下填充它。將樹列表轉換爲表

任何建議,非常感謝。

乾杯。

回答

1

我認爲最好的方法是遞歸。我不知道的BindingList的結構,我會寫的最一般的,我可以,你適應的方法,正確的名稱:

void visitNode(Node loc, int level) 
{ 
    //write here the code to save the node loc in the column = 'level' 

    foreach(Node n in Loc.children) 
     visitNode(n, level + 1); 
} 

其中節點是孩子的類型,Loc.children是一個列表或一組兒童。

該遞歸將訪問所有節點。

0

我有管理通過跟蹤最終節點來排序這個問題,然後簡單地逐一返回層次結構。 (所以,從技術上講,進入該行的最後一個單元並向左返回。)