static void Main(string[] args) { var root = new BinaryTreeIntNode(10); root.Left = new BinaryTreeIntNode(1); root.Right = new BinaryTreeIntNode(5); root.Left.Left = new BinaryTreeIntNode(2); root.Left.Right = new BinaryTreeIntNode(3); var inOrderValues = BinaryTreeTraversals.TraverseInOrder(root); System.Console.WriteLine("[" + string.Join(", ", inOrderValues) + "]"); var preOrderValues = BinaryTreeTraversals.TraversePreOrder(root); System.Console.WriteLine("[" + string.Join(", ", preOrderValues) + "]"); var postOrderValues = BinaryTreeTraversals.TraversePostOrder(root); System.Console.WriteLine("[" + string.Join(", ", postOrderValues) + "]"); }
public static List <int> TraversePreOrder(BinaryTreeIntNode node) { var treeOutput = new List <int>(); treeOutput.Add(node.Data); var leftTreeOutput = new List <int>(); if (node.Left != null) { leftTreeOutput = TraversePreOrder(node.Left); } treeOutput.AddRange(leftTreeOutput); var rightTreeOutput = new List <int>(); if (node.Right != null) { rightTreeOutput = TraversePreOrder(node.Right); } treeOutput.AddRange(rightTreeOutput); return(treeOutput); }