遞迴演算法,如何把list中父子類物件遞迴成樹

2022-01-16 17:43:44 字數 1131 閱讀 9443

以前寫**for迴圈寫的多,遞迴除了在大學學習以外,真沒怎麼用過!

最近專案中使用到了關於族譜排列的問題,就是怎麼把資料庫裡的多個子父類people物件,在介面中用樹的結構展示出來

假設資料庫中people有兩個字段分別是idparentid(當然設計的時候肯定會有familypath,rootid之類的字段,這裡為了方便介紹就只用倆字段)

話不多說直接上**吧

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

); }

for (int i = 0; i < 2; i++));}

for (int i = 0; i < 3; i++));}

for (int i = 0; i < 3; i++));}

#endregion 上面是新增測試資料

//查詢當前節點下的所有子孫物件

var currentp = new

people();

currentp.id = 1

;//遞迴完成後,此處currentp,就新增好了子孫類節點

recursion(listp, currentp);

//then

//展示currentp

}

public

void recursion(listlist,people p)

list

peoples = new list();

for (int i = 0; i < list.count; i++)

} }}

public

class

people

}

吶,就這麼簡單,看到同事不斷用for迴圈來一級推一級,我頭都大了,寫的太麻煩。遞迴雖然很簡單,但是也要花點時間思考。

Mysql中的遞迴層次查詢(父子查詢)

在mysql中如何完成節點下的所有節點或節點上的所有父節點的查詢?在oracle中我們知道有乙個hierarchical queries可以通過connect by來查詢,但是,在mysql中還沒有對應的函式 下面是sql指令碼,想要執行的直接賦值貼上進資料庫即可。建立表treenodes 可以根據...

Mysql中的遞迴層次查詢(父子查詢)

描述 最近遇到了乙個問題,在mysql中如何完成節點下的所有節點或節點上的所有父節點的查詢?在oracle中我們知道有乙個hierarchical queries可以通過connect by來查詢,但是,在mysql中還沒有對應的函式 下面給出乙個function來完成的方法 下面是sql指令碼,想...

python如何把字串型別list轉換成list

python讀取了乙個list是字串形式的 11.23,23.34 想轉換成list類程式設計客棧型 方式一 import ast str list 11.23,23.34 list li程式設計客棧st ast.literal eval str list print type list list ...