C#如何创建二叉树并实现先序遍历
时间: 2024-03-20 19:43:55 浏览: 13
要创建二叉树并实现先序遍历,可以按照以下步骤进行:
1. 定义二叉树节点类,包括节点值、左子树和右子树三个属性。
```csharp
public class BinaryTreeNode
{
public int Value { get; set; }
public BinaryTreeNode Left { get; set; }
public BinaryTreeNode Right { get; set; }
}
```
2. 创建二叉树,可以手动构造一个二叉树,或者读取数据文件等方式创建。
```csharp
BinaryTreeNode root = new BinaryTreeNode
{
Value = 1,
Left = new BinaryTreeNode
{
Value = 2,
Left = new BinaryTreeNode { Value = 4 },
Right = new BinaryTreeNode { Value = 5 }
},
Right = new BinaryTreeNode
{
Value = 3,
Left = new BinaryTreeNode { Value = 6 },
Right = new BinaryTreeNode { Value = 7 }
}
};
```
3. 实现先序遍历,先访问根节点,再访问左子树,最后访问右子树。
```csharp
public static void PreOrderTraversal(BinaryTreeNode node)
{
if (node == null) return;
Console.Write(node.Value + " ");
PreOrderTraversal(node.Left);
PreOrderTraversal(node.Right);
}
```
4. 调用先序遍历方法,输出遍历结果。
```csharp
PreOrderTraversal(root);
```
完整代码示例:
```csharp
using System;
public class BinaryTreeNode
{
public int Value { get; set; }
public BinaryTreeNode Left { get; set; }
public BinaryTreeNode Right { get; set; }
}
public class BinaryTree
{
public static void PreOrderTraversal(BinaryTreeNode node)
{
if (node == null) return;
Console.Write(node.Value + " ");
PreOrderTraversal(node.Left);
PreOrderTraversal(node.Right);
}
public static void Main(string[] args)
{
BinaryTreeNode root = new BinaryTreeNode
{
Value = 1,
Left = new BinaryTreeNode
{
Value = 2,
Left = new BinaryTreeNode { Value = 4 },
Right = new BinaryTreeNode { Value = 5 }
},
Right = new BinaryTreeNode
{
Value = 3,
Left = new BinaryTreeNode { Value = 6 },
Right = new BinaryTreeNode { Value = 7 }
}
};
PreOrderTraversal(root);
}
}
```