用递归实现的Tree之二




// "└" "├ "│" "+"
private List<Course> l = new ArrayList<Course>();
private boolean[] aryNodeStatus = new boolean[100];
private void tree(Integer cid, Integer level,boolean[] aryIsLastNode) {
int index = 0;
List<Course> list = (List<Course>) coursedao.findByPid(cid);

for (Course t : list) {
/*
* System.out.println("-----list:" + list.toString());
* System.out.println("-----t:" + t);
* System.out.println("-----list.size():" + list.size());
*/

String symbol = "";
String symbolf = "";
index++;

// System.out.println("-----index:" + index);

// 先画上级节点延续下来的"|"+空格,空格具体数目由层数决定
//System.out.println("-----level:" + level);
for (int lev = 0; lev < level; lev++) {
if(aryIsLastNode[lev]==false)
symbolf += "│";
else
symbolf += "  ";
}
// 是否为最后一个节点
if (index == list.size()) {
symbol = "└";

} else {
symbol = "├";

}



String cname = symbolf + symbol + t.getCname();
t.setCname(cname);
// System.out.println("-----t:" + t.getCname());

if (t.getLeaf() == 0) {

l.add(t);
// t.setLeveler(level + 1);
// tree(t.getId(),
// t.getLeveler(),index==list.size()?true:false);

} else {

l.add(t);
t.setLevel(level + 1);
if(index==list.size()){
aryIsLastNode[level]=true;
}
else{
aryIsLastNode[level]=false;
}
tree(t.getCid(), t.getLevel(),aryIsLastNode);
}
}

}

public List<Course> showTree() {
l.clear();
List<Course> list = (List<Course>) coursedao.findByPid(0);
for (Course t : list) {
if (t.getLeaf() != 0) {
l.add(t);
aryNodeStatus[0]=true;
this.tree(t.getCid(), 0, aryNodeStatus);
} else {
l.add(t);
}
}
return l;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值