达人们这个递归算法要怎么实现?(附代码)
我从数据库中读取数据来建立一个目录树,数据库的表名node_tree其中中有node_name,node_id,parentnode_id,node_level,node_order列名,我通过读取子节点的parentnode_id来连接到父节点上,我现面是最笨的实现办法,如果树结点的等级少点还好,如果多了可就吃不消了,这样也不灵活,请问哪位知道怎么用递归实现这个算法? 谢谢 在线等答案
sql = "select * from node_tree where node_level='1'";
Statement sm = cn.createStatement();
ResultSet rs = sm.executeQuery(sql);
while(rs.next())//1级结点
{
String s = rs.getString("node_name");
String rootid = rs.getString("node_id");
DefaultMutableTreeNode root =
new DefaultMutableTreeNode(s);
String childFirst =
"select * from node_tree where node_level='2' "
+"and parentnode_id='" +rootid+
"' order by node_order";
Statement smChild = cn.createStatement();
ResultSet rsfirst = smChild.executeQuery(childFirst);
while(rsfirst.next())//2级结点
{
String child = rsfirst.getString("node_name");
String secondid = rsfirst.getString("node_id");
DefaultMutableTreeNode node =
new DefaultMutableTreeNode(child);
String childSecond = "select * from node_tree where " +
"node_level='3' and parent_id='"
+secondid+"' order by node_order";
Statement smSecond = cn.createStatement();
ResultSet rsSecond = smSecond.executeQuery(childSecond);
while(rsSecond.next())//3级结点
{
String secondName = rsSecond.getString("node_name");
String thirdid= rsSecond.getString("node_id");
DefaultMutableTreeNode nodeSecond =
new DefaultMutableTreeNode(secondName);
String childThird = "select * from node_tree where "+
"node_level='4' and parentnode_id='"
+thirdid+"' order by node_order";
Statement smThird = cn.createStatement();
ResultSet rsThird = smThird.executeQuery(childThird);
while(rsThird.next())
{
String thirdName = rsThird.getString("node_name");
String fourthid = rsThird.getString("node_id");
DefaultMutableTreeNode nodeThird =
new DefaultMutableTreeNode(thirdName);
nodeSecond.add(nodeThird);
。
。
。
...//如果还有结点这样无限期下去可不是办法?
}
node.add(nodeSecond);
}
root.add(node);
rsSecond.close();
}