public static void printTree(DTNode root) { if (root.getChildren().Count == 0) { Console.WriteLine(" => " + root.getResult() + "\n"); } else { foreach (KeyValuePair <DTNode, Condition> entry in root.getChildren()) { // do something with entry.Value or entry.Key Console.Write(entry.Value.getMember1() + " "); switch (entry.Value.getOperator()) { case Constants.conditionType.LT: Console.Write(" < "); break; case Constants.conditionType.GEQT: Console.Write(" >= "); break; default: break; } Console.Write(entry.Value.getMember2() + "\n"); printTree(entry.Key); } } }
public static String findValueInTree(DTNode root, Example test) { if (root.getChildren().Count > 0) { double value; // foreach child foreach (KeyValuePair<DTNode, Condition> entry in root.getChildren()) { switch (entry.Value.getOperator()) { case Constants.conditionType.GEQT: if (test.getAttributes().TryGetValue(entry.Value.getMember1(), out value) == true) { if (value >= entry.Value.getMember2()) return findValueInTree(entry.Key, test); } break; case Constants.conditionType.LT: if (test.getAttributes().TryGetValue(entry.Value.getMember1(), out value) == true) { if (value < entry.Value.getMember2()) return findValueInTree(entry.Key, test); } break; default: break; } } } return root.getResult(); }
public static void printTree(DTNode root) { if (root.getChildren().Count == 0) Console.WriteLine(" => " + root.getResult() + "\n"); else { foreach (KeyValuePair<DTNode, Condition> entry in root.getChildren()) { // do something with entry.Value or entry.Key Console.Write(entry.Value.getMember1() + " "); switch (entry.Value.getOperator()) { case Constants.conditionType.LT: Console.Write(" < "); break; case Constants.conditionType.GEQT: Console.Write(" >= "); break; default: break; } Console.Write(entry.Value.getMember2() + "\n"); printTree(entry.Key); } } }
public static String findValueInTree(DTNode root, Example test) { if (root.getChildren().Count > 0) { double value; // foreach child foreach (KeyValuePair <DTNode, Condition> entry in root.getChildren()) { switch (entry.Value.getOperator()) { case Constants.conditionType.GEQT: if (test.getAttributes().TryGetValue(entry.Value.getMember1(), out value) == true) { if (value >= entry.Value.getMember2()) { return(findValueInTree(entry.Key, test)); } } break; case Constants.conditionType.LT: if (test.getAttributes().TryGetValue(entry.Value.getMember1(), out value) == true) { if (value < entry.Value.getMember2()) { return(findValueInTree(entry.Key, test)); } } break; default: break; } } } return(root.getResult()); }