static void Main(string[] args) { // 随机生成高度为 HEIGHT 的二叉树 var tree = new BinaryTree <int>(); var root = tree.InsertAsRoot(rand.Next(MIN, MAX)); CreateTree(tree, root, HEIGHT); Console.WriteLine("先序遍历:"); tree.PreOrder(n => { Console.Write(string.Format("{0} ", n)); }); Console.WriteLine(); Console.WriteLine("中序遍历:"); tree.InOrder(n => { Console.Write(string.Format("{0} ", n)); }); Console.WriteLine(); Console.WriteLine("后序遍历:"); tree.PostOrder(n => { Console.Write(string.Format("{0} ", n)); }); Console.WriteLine(); Console.WriteLine("层次遍历:"); tree.LevelOrder(n => { Console.Write(string.Format("{0} ", n)); }); Console.WriteLine(); }
public void CanDoAnPreOrderTraversal() { Assert.Equal("60 -Edge-> 4 -Edge-> 20 -Edge-> 9 -Edge-> 17 -Edge-> 25 -Edge-> 90 -Edge-> 40 -Edge-> 21 -Edge-> 30", String.Join(" -Edge-> ", BinaryTree.PreOrder(Root).Select(val => (int)val.Data))); }