您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> 速归速归 如果不归 新手 问个递归的小程序

速归速归 如果不归 新手 问个递归的小程序

来源:网络整理     时间:2016/6/20 0:53:34     关键词:速归速归 如果不归

关于网友提出的“速归速归 如果不归 新手 问个递归的小程序”问题疑问,本网通过在网上对“速归速归 如果不归 新手 问个递归的小程序”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:速归速归 如果不归 新手 问个递归的小程序
描述:

递归java web

private void delete (Connection conn, int id, boolean isLeaf ) {
 
      //delete all the children
if(!isLeaf) {
Statement stmt = DB.createStatement(conn);
String sql = " select * from article where pid = " + id;
ResultSet rs = DB.getResultSet(stmt,sql);
try{
while (rs.next()) {
         delete(conn,rs.getInt("id"), rs.getInt("isLeaf")==0);
}
} catch(SQLException e) {
e.printStackTrace();
} finally{
DB.close(rs);
DB.close(stmt);
}
}
    
      //delete it self
String sql = " delete from article where id = " + id;
DB.executeUpdate(conn,sql);
}    
然后调用此函数delete(conn,id,isLeaf)
简单说明一下,这是删除帖子和他的子帖的小程序,我不太明白的是当帖子不是叶子节点时会执行if 后面的语句知道获得他的叶子贴,然后删除。可是我不明白的是我觉得这个小程序只能删除叶子贴,然而不是叶子贴的一概删除不了,因为通过调用会一直执行if后面的帖子直到拿到叶子贴,可其他的非叶子贴拿不到啊。。。  事实上所有帖子都能删除,但我不知道我想的哪里错了,请大家帮忙
解决方案1:

叶子贴删除完了,原来的非叶子贴就变成叶子贴了

解决方案2:

不一定非要用递归算法呀!你可以在点一个阶段的时候得到他的id,然后再子节点的那个列查询是否有数据,返回int类型,如果返回得值大于零则证明这个节点下有子集,否则就是没有,这样就可以判断是否可以删除了!

解决方案3:

你这个应该有自关联吧 ,要先删除子节点再去删除父节点 ,要不然会报错的


以上介绍了“速归速归 如果不归 新手 问个递归的小程序”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1787848.html

速归速归 如果不归相关图片

速归速归 如果不归相关文章