Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
 public void CanDoAnInOrderTraversal()
 {
     Assert.Equal("20 -Edge-> 4 -Edge-> 17 -Edge-> 9 -Edge-> 25 -Edge-> 60 -Edge-> 40 -Edge-> 90 -Edge-> 21 -Edge-> 30", String.Join(" -Edge-> ", BinaryTree.InOrder(Root).Select(val => (int)val.Data)));
 }