树 递归测试
来源:互联网 发布:oracle数据库入门 编辑:程序博客网 时间:2024/06/01 14:13
/** * 网元节点数据结构 */public class NeNode {private String dn;private boolean versionMgt;private List<NeNode> children = new ArrayList<NeNode>();public NeNode(){}public NeNode(String dn){this.dn = dn;}public List<NeNode> getChildren() {return children;}public void setChildren(List<NeNode> children) {this.children = children;}public String getDn() {return dn;}public void setDn(String dn) {this.dn = dn;}public boolean isVersionMgt() {return versionMgt;}public void setVersionMgt(boolean versionMgt) {this.versionMgt = versionMgt;}public String toString(){return "dn="+dn+" versionMgt="+versionMgt;}}
// 递归测试public static void main(String[] args) {List<NeNode> total = new ArrayList<NeNode>();// 第一种情况父节点不支持,子节点也不支持NeNode parent1 = new NeNode("parent1");parent1.setVersionMgt(false);NeNode children1 = new NeNode("children1");children1.setVersionMgt(false);NeNode cc = new NeNode("cc");cc.setVersionMgt(false);children1.getChildren().add(cc);parent1.getChildren().add(children1);// 第二种情况父节点不支持,子节点支持NeNode parent2 = new NeNode("parent2");parent2.setVersionMgt(false);NeNode children2 = new NeNode("children2");children2.setVersionMgt(true);parent2.getChildren().add(children2);// 第三种情况父节点支持,子节点不支持NeNode parent3 = new NeNode("parent3");parent3.setVersionMgt(true);NeNode children3 = new NeNode("children3");children3.setVersionMgt(false);parent3.getChildren().add(children3);// 第四种情况父节点支持,子节点支持NeNode parent4 = new NeNode("parent4");parent4.setVersionMgt(true);NeNode children4 = new NeNode("children4");children4.setVersionMgt(true);parent4.getChildren().add(children4);total.add(parent1);total.add(parent2);total.add(parent3);total.add(parent4);List<NeNode> result = new ArrayList<NeNode>();List<NeNode> nnn = fetch(total, result);for (NeNode node : nnn) {System.out.println(node.toString() + " length="+ node.getChildren().size());}System.out.println(nnn);}public static List<NeNode> fetch(List<NeNode> total, List<NeNode> result) {// 解题思路 :一直解析 解析到有true 就加载进去如果没有就不级for (NeNode node : total) {// 1. 判断首次节点有没有,有就添加进去,遍历下一个节点,没有就查看是否含有子节点if (node.isVersionMgt()) {result.add(node);continue;}// 2.父节点没有,判断有没有子节点,子节点中,只要有个一含有true 就返回true,添加进去if (node.getChildren().size() != 0) {if (isChildVerMgt(node.getChildren())) {result.add(node);}}}return result;}private static boolean isChildVerMgt(List<NeNode> children) {for (NeNode node : children) {if (node.isVersionMgt()) {return true;}if (node.getChildren().size() != 0) {if(isChildVerMgt(node.getChildren())){return true;}}}return false;}
0 0
- 树 递归测试
- 递归测试
- 二叉树测试,递归遍历,随后加上非递归遍历
- java递归函数测试
- 测试:递归的原理
- 递归复杂度测试
- postgres 递归测试
- 递归测试 啤酒瓶问题
- java递归测试总结
- boost递归锁recursive_mutex 测试
- 测试python最大递归层次
- N皇后问题递归和非递归效率测试
- 测试:二叉树遍历(递归:前序,中序,后序)
- 二叉树的创建、销毁、各种递归、循环遍历方法(可运行测试)
- 二叉树前、中、后序遍历【非递归】【LintCode测试平台】
- C语言 递归函数的一些测试
- Java递归调用测试小demo
- 自动化测试中递归函数的应用
- 自定义的NSSegmentedControl
- ZOJ-3110
- C/S+P2P网络模型(二)--上传&下载文件
- 泛型的概念和使用
- python实现一个P2P文件发布
- 树 递归测试
- python中@property装饰器的用法
- SpringMVC(二)——流程控制
- android之应用程序安装位置application install location
- Java 采用MD5进行加密和解密
- Js冒泡事件详解及阻止
- linux系统下安装flash插件
- 29. 微软面试题:求一个矩阵中最大的二维矩阵(元素和最大)
- 用net start mysql , 提示发生系统错误 5;拒绝访问!