用遞迴形成樹結構資料

2022-02-23 17:32:17 字數 1486 閱讀 6068

定義乙個樹形實體 

public

class

orgtrees

public

int id

public

int fatherid

public

string name

public

int lever

public

bool haschildren

public

string

orgcode;

public

intorgtype;

public listchildren

}

開始遞迴方法

1

///2

///獲取組織層級樹

3///

4///

5public ajaxresponsegetorgtrees()6);

22}2324

//根節點

25var rootnode = orglayerlist.where(x => x.info.fatherid.equals(-1

)).first();

26var model = new

orgtrees();

27 model.id =rootnode.info.id;

28 model.fatherid =rootnode.info.fatherid;

29 model.name =rootnode.info.name.getvaluebylanid(workcontext.workinglanguage.id);

30 model.lever =rootnode.layer;

31 model.orgcode =rootnode.info.orgcode;

32 model.orgtype =rootnode.info.orgtype;

33 model.haschildren =rootnode.haschildren;

34creattree(model.id, model, orglayerlist);

35return

new ajaxresponse(model);36}

37//

生成樹的方法

38public

void creattree(int parentid, orgtrees tree, layerlistlaerlist)

3959 tree.children = nodetrees; //

由於物件是引用型別,因為可以改變引數的值

60 }

說下思路就是 先把根節點找出來,然後尋找根節點的子節點 然後遞迴迴圈子節點,尋找子節點的子節點

最後生成的是就是 

用樹結構儲存資料

insert into nested category values electronics 1,20,0 televisions 2,9,1 tube 3,4,2 lcd 5,6,2 plasma 7,8,2 portable electronics 10,19,1 players 11,14,2...

使用遞迴演算法實現樹結構

新專案需要用到左側選單欄的遍歷效果 所以自己研究寫了乙個遞迴實現樹結構的工具類 後台正常查詢資料集合,不過因為是樹結構,必須要有關聯關係的字段 注釋中會寫細節部分,如下 遞迴實現樹形工具類 public class treeutils return returntree 根據跟節點查詢子節點 roo...

資料結構 樹結構

樹結構以一種 一對多 的資料關係。樹的結點 結點 樹結構的每乙個元素都可以被稱為乙個節點。父結點 a結點是b,c的父結點 子結點 b,c是a的子結點 根結點 a是樹的根結點,每乙個非空的樹結構中只有乙個根結點 q 如何判斷某個結點是否是根結點?a 根結點沒有父節點 葉子結點 d,e,f是葉子結點,葉...