private List <int> GetTraversalRecursively(Node node, BinaryTreeOrderType orderType, List <int> traversalList = null) { if (traversalList == null) { traversalList = new List <int> { } } ; if (node != null) { if (orderType == BinaryTreeOrderType.PreOrder) { traversalList.Add(node.Data); } GetTraversalRecursively(node.LeftChildNode, orderType, traversalList); if (orderType == BinaryTreeOrderType.InOrder) { traversalList.Add(node.Data); } GetTraversalRecursively(node.RightChildNode, orderType, traversalList); if (orderType == BinaryTreeOrderType.PostOrder) { traversalList.Add(node.Data); } } return(traversalList); }
public List <BinaryTreeNode <T> > Traverse(BinaryTreeOrderType type) { var result = new List <BinaryTreeNode <T> >(); switch (type) { case BinaryTreeOrderType.PreOrder: TraversePreOrder(Root, result); break; case BinaryTreeOrderType.InOrder: TraverseInOrder(Root, result); break; case BinaryTreeOrderType.PostOrder: TraversePostOrder(Root, result); break; } return(result); }