以前寫(xiě)的一個(gè)遍歷算法,以后也應(yīng)該用得著(89) |
|
/*
* @author 於良偉
* 根先序遍歷算法
* @param bizes 所選的遍歷總數(shù)據(jù)
* @param bizID 當(dāng)前遍歷的根節(jié)點(diǎn)id
* @param treeList 遍歷返回結(jié)果
* @return void
*
* */
private void traversal(List bizes,Long bizID, List treeList) {
for (int i = 0; i < bizes.size(); i++) {
Business business = (Business) bizes.get(i);
if (business.getParentBusiness()!=null && bizID.equals(business.getParentBusiness().getId())) {
/*如果當(dāng)前節(jié)點(diǎn)存在父節(jié)點(diǎn)并且當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)編號(hào)與bizID相同,則添加到treeList*/
treeList.add(business);
/*遍歷*/
traversal(bizes,business.getId(),treeList);
}
} //for
}
/*
* @author 於良偉
* 根據(jù)所選收支類(lèi)型創(chuàng)建樹(shù)
* @param biz 所選節(jié)點(diǎn)
* @param IOflag 收支類(lèi)型
* @return List treeList
*
*
* */
public List builderTreeByBiz(final Business biz,final Integer IOflag){
/*從指定節(jié)點(diǎn)構(gòu)造收支類(lèi)型樹(shù)結(jié)構(gòu)的List*/
List treeList = new ArrayList();
if (biz==null) {
/*如果biz為空,返回空List*/
return treeList;
}
/*添加biz到treeList*/
treeList.add(biz);
/*根先序遍歷*/
traversal(getBusinessByDepartment(biz.getDept(),IOflag),biz.getId(),treeList);
return treeList;
}
|
posted on 2007-09-27 18:58
Crying 閱讀(230)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
算法