首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

递归函数的施用,前递归,后递归

2012-12-21 
递归函数的应用,前递归,后递归。//前递归函数。首先找到这个节点下第一层最下层的节点。然后一层层递归判断回

递归函数的应用,前递归,后递归。
   //前递归函数。首先找到这个节点下第一层最下层的节点。然后一层层递归判断回来
   //该函数实现:没有选中该节点下所有节点,返回为true,如果选择其中任何一个节点都将返回false。
   /**
    * 递归判断当前节点是否删除,
     *
    * @param parentNode当前树节点
     * @param dList
     *            当前已经选择了的节点唯一键集合
     *
     * @return true 不删除当前节点 false 删除当前节点
     */
    private boolean recursiveRemoveTreeNode(TargetTree parentNode,
            List<String> dList) {
        for (int i = 0; i < parentNode.getChildCount(); i++) {
            if (recursiveRemoveTreeNode(parentNode.getChildAt(i), dList)) {
                return true;
            }
        }
        // 判断当前是否有没有被选择的子节点
        if (dList.contains(parentNode.getNodeValue())) {
            return false;
        } else {
            return true;
        }
    }
//后递归函数
     /**
     * 将一棵树平铺成一个map,使树与map一一对应关系
     @param parentNodeData 树对象
     */
    private void recursiveTreeToMap(TargetTree parentNodeData,
            Map<String, TargetTree> fatherMap) {
        fatherMap.put(parentNodeData.getNodeValue(), parentNodeData);
        for (TargetTree item : parentNodeData.getChildren()) {
            recursiveTreeToMap(item, fatherMap);
        }
    }

热点排行