public void Traverse(DNode <T> node, TreeTracker <T> tracker) { tracker(node.content); foreach (DNode <T> kid in node.children) { Traverse(kid, tracker); } }
private void MoveToPreviousSibbling(TreeTracker treeTracker) { treeTracker?.MoveToPreviousSibling(); }
private void MoveToNextSibbling(TreeTracker treeTracker) { treeTracker?.MoveToNextSibling(); }
private void MoveToLastChild(TreeTracker treeTracker) { treeTracker?.MoveToLastChild(); }
private void MoveToParent(TreeTracker treeTracker) { treeTracker?.MoveToParent(); }