static void Main(string[] args) { var root = new Node { Data = "A", Left = new Node("B", new Node("C"), new Node("D", new Node("E"), new Node("F", null, new Node("G")))), Right = new Node("H", new Node("I"), new Node("J")) }; var root2 = new Node { Data = "A", Left = new Node("B", new Node("C"), new Node("D", new Node("E"), new Node("F", null, new Node("G")))), Right = new Node("H", new Node("I"), new Node("J", new Node("K", new Node("L"), null), new Node("M"))) }; Console.WriteLine("Node A = Node B: " + root.Equals(root2)); Console.WriteLine("Pre-order"); PreOrderPrint(root); Console.WriteLine("In-order"); InOrderPrint(root); Console.WriteLine("Post-order"); PostOrderPrint(root); string s; do { Console.Write("Enter Command: "); s = Console.ReadLine(); var foundNode = FindNode(root, s); if (foundNode == null) { Console.WriteLine("Node Not found " + s); } else { Console.WriteLine("Found Node!!!!"); } } while (s != "STOP"); }