Tree runner

Run Settings
LanguageJava
Language Version
Run Command
import java.util.ArrayList; class NodeSystem { public static class Node { public ArrayList<Node> nodes = new ArrayList<Node>();//child nodes of this node //if nodes == it's leaves //propetries public String name; public Node(String name) { this.name = name; } public void addChild(Node n) { this.nodes.add(n); } } public abstract static class TreeRunner { public abstract void nodeHandle(Node n); public void recursiveRead(Node node) { nodeHandle(node); if(node.nodes != null){ for(Node childNode:node.nodes){ recursiveRead(childNode); } } } } //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //::::::::::::::::::::F:O:R::T:E:S:T::::::::::::::::::::::::::::: //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: private static class MyTreeRunner extends TreeRunner { public static int TAB = 0; @Override public void nodeHandle(Node n) { System.out.println(getTab()+n.name); } private String getTab() { String result = ""; for(int i = 0;i<TAB;i++) { result+=" "; } return result; } public void recursiveRead(Node n) { TAB++; super.recursiveRead(n); TAB--; } } public static void main(String[] args) { System.out.println("::TEST::"); Node root = new Node("ROOT"); Node element1 = new Node("Child_Of_Root"); Node element2 = new Node("First_Child_Of_element1"); Node element3 = new Node("Second_Child_Of_element1"); Node element4 = new Node("First_Child_Of_element2"); element2.addChild(element4); element1.addChild(element2); element1.addChild(element3); root.addChild(element1); MyTreeRunner ntr = new MyTreeRunner(); ntr.recursiveRead(root); //now we have tree: /* ROOT[1] \ / Child_Of_Root[2] / \ First_Child_Of_element1[3] \ / Second_Child_Of_element1[5] First_Child_Of_element2[4] */ } }
Editor Settings
Theme
Key bindings
Full width
Lines