日期:2014-05-17  浏览次数:20782 次

根据Level指定ParentID,请教算法问题。
原始示范数据如下(只有Level的级数):

ID    ParentID  Level
1     0         0
2     0         1
3     0         1
4     0         2
5     0         3
6     0         3
7     0         1
8     0         0
9     0         1
10    0         2
11    0         2
12    0         0


为了按ID顺序生成以下的树形结构:
    0级 1级 2级 3级
 - 1
    - 2
    - 3
       - 4
           - 5
           - 6
    - 7
 - 8
    - 9
        - 10
        - 11
 - 12


我需要根据以上的数据中的Level,按ID顺序生成下面的ParentID:

ID    ParentID  Level
1     0         0
2     1         1
3     1         1
4     3         2
5     4         3
6     4         3
7     1         1
8     0         0
9     8         1
10    9         2
11    9         2
12    0         0


规律是:
1,8,12为第一层等,以此类推。

部分程序如下:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
    //原始示例数据。
    List<Data> data = new List<Data>();
    data.Add(new Data { ID = 1,  ParentID = 0, Level = 0, });
    data.Add(new Data { ID = 2,  ParentID = 0, Level = 1, });
    data.Add(new Data { ID = 3,  ParentID = 0, Level =&nb