用c#语言实现二叉树的前序,中序,后序遍历
时间: 2024-10-20 13:12:58 浏览: 18
C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法
5星 · 资源好评率100%
在C#中,我们可以使用递归的方式来实现二叉树的前序、中序和后序遍历。以下是一个简单的示例代码:
```csharp
using System;
public class TreeNode
{
public int Value;
public TreeNode Left;
public TreeNode Right;
public TreeNode(int value)
{
Value = value;
Left = null;
Right = null;
}
}
public class BinaryTreeTraversal
{
// 前序遍历
public void PreOrderTraversal(TreeNode root)
{
if (root == null) return;
Console.Write(root.Value + " ");
PreOrderTraversal(root.Left);
PreOrderTraversal(root.Right);
}
// 中序遍历
public void InOrderTraversal(TreeNode root)
{
if (root == null) return;
InOrderTraversal(root.Left);
Console.Write(root.Value + " ");
InOrderTraversal(root.Right);
}
// 后序遍历
public void PostOrderTraversal(TreeNode root)
{
if (root == null) return;
PostOrderTraversal(root.Left);
PostOrderTraversal(root.Right);
Console.Write(root.Value + " ");
}
}
class Program
{
static void Main(string[] args)
{
TreeNode root = new TreeNode(1);
root.Left = new TreeNode(2);
root.Right = new TreeNode(3);
root.Left.Left = new TreeNode(4);
root.Left.Right = new TreeNode(5);
root.Right.Left = new TreeNode(6);
root.Right.Right = new TreeNode(7);
BinaryTreeTraversal traversal = new BinaryTreeTraversal();
Console.WriteLine("前序遍历:");
traversal.PreOrderTraversal(root);
Console.WriteLine("\n中序遍历:");
traversal.InOrderTraversal(root);
Console.WriteLine("\n后序遍历:");
traversal.PostOrderTraversal(root);
}
}
```
在这个示例中,我们定义了一个`TreeNode`类来表示二叉树的节点,以及一个`BinaryTreeTraversal`类来实现三种遍历方法。`PreOrderTraversal`方法实现了前序遍历,`InOrderTraversal`方法实现了中序遍历,`PostOrderTraversal`方法实现了后序遍历。在`Main`方法中,我们创建了一个简单的二叉树并调用这些方法进行遍历。
阅读全文