C#分别用前序遍历、中序遍历和后序遍历打印二叉树的代码

将写内容过程常用的一些内容段做个备份,下面内容段是关于C#分别用前序遍历、中序遍历和后序遍历打印二叉树的内容。

public class BinaryTreeNode

{

    public BinaryTreeNode Left { get; set; }

    public BinaryTreeNode Right { get; set; }

    public int Data { get; set; }

    public BinaryTreeNode(int data)

    {

        this.Data = data;

    }

}

    public enum TreeTraversal

    {

        PREORDER,

        INORDER,

        POSTORDER

    }

    public void PrintTree(BinaryTreeNode root, TreeTraversal treeTraversal)

    {

        Action printValue = delegate(int v)

        {

            Console.Write(v + " ");

        };


        switch (treeTraversal)

        {

            case TreeTraversal.PREORDER:

                PreOrderTraversal(printValue, root);

                break;

            case TreeTraversal.INORDER:

                InOrderTraversal(printValue, root);

                break;

            case TreeTraversal.POSTORDER:

                PostOrderTraversal(printValue, root);

                break;

            default: break;

        }

    }

    public void PreOrderTraversal(Action action, BinaryTreeNode root)

    {

        if (root == null)

            return;

        action(root.Data);

        PreOrderTraversal(action, root.Left);

        PreOrderTraversal(action, root.Right);

    }

    public void InOrderTraversal(Action action, BinaryTreeNode root)

    {

        if (root == null)

            return;

        InOrderTraversal(action, root.Left);

        action(root.Data);

        InOrderTraversal(action, root.Right);

    }

    public void PostOrderTraversal(Action action, BinaryTreeNode root)

    {

        if (root == null)

            return;

        PostOrderTraversal(action, root.Left);

        PostOrderTraversal(action, root.Right);

        action(root.Data);

    }               

你可能感兴趣的:(C#分别用前序遍历、中序遍历和后序遍历打印二叉树的代码)