您的位置:首页 > 编程语言 > C#

C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法

2015-04-27 11:44 1166 查看

本文实例讲述了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<int> 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<int> action, BinaryTreeNode root)
{
if (root == null)
return;
action(root.Data);
PreOrderTraversal(action, root.Left);
PreOrderTraversal(action, root.Right);
}
public void InOrderTraversal(Action<int> action, BinaryTreeNode root)
{
if (root == null)
return;
InOrderTraversal(action, root.Left);
action(root.Data);
InOrderTraversal(action, root.Right);
}
public void PostOrderTraversal(Action<int> action, BinaryTreeNode root)
{
if (root == null)
return;
PostOrderTraversal(action, root.Left);
PostOrderTraversal(action, root.Right);
action(root.Data);
}

希望本文所述对大家的C#程序设计有所帮助。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# 遍历 二叉树
相关文章推荐