获取第N级的所有节点实现代码

    基本的思想和步骤都在了,主要就是递归

    /**
     * 传入级数返回存放该级数下所有组织列表的列表
     * @param lever int 组织级数
     * @return List<List> 存放组织列表
     */

    public List<List> getTreeLeverNode(int lever) {
        String sqlstr = "select  ID from table1 where PARENT_ID=0";
        Result ret = Dao.executeQuery(sqlstr);
        List<List> list = new Vector<List>();
        List rslist = new Vector();
        List<String> nodeList = new Vector<String>();
        for (int i = 0; i < ret.Length(); i++) {
            rslist = getNextNode(Integer.parseInt(ret[i]
                        .toString()), lever - 1, nodeList);
                list.add(rslist);
        }
        return list;
    }

    /**
     * 返回存放该级数下所有组织的列表
     * @param reqParentid 请求传入的父节点ID
     * @param lever 组织级数
     * @param list 存放该级数下所有组织的列表
     * @return List<String> 存放组织
     */

    public List<String> getNextNode(int reqParentid, int lever, List list) {
        String sqlstr = "select  ID from table1 where PARENT_ID="
                + reqParentid;
        DBResult ret = super.executeQuery(sqlstr);
        List rslist = new Vector();
        lever = lever - 1;
        if (lever > 0) {
           for (int i = 0; i < ret.Length(); i++) {
                 rslist = getNextNode(Integer.parseInt(ret[i]
                        .toString()), lever , nodeList);
                list.add(rslist);
           }
        } else {
            for (int i = 0; i < ret.Length(); ; i++) {
                list.add(ret[i].toString());
            }
        }
        return list;
    }

posted on 2007-01-15 20:30 JGAO编程随笔 阅读(112) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2007年1月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜