定義乙個樹形實體
publicclass
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是葉子結點,葉...