算法导论 - 基于 C# 的树结构实现
树(Tree)是一种重要的非线性数据结构,广泛应用于各种算法和数据处理任务中。树结构具有层次关系,其中包含根节点(Root)和若干子节点(Child Node)。常见的树结构包括二叉树(Binary Tree)、二叉搜索树(Binary Search Tree)、平衡二叉树(Balanced Binary Tree)等。
本文将介绍如何在 C# 中实现二叉树和二叉搜索树。
二叉树(Binary Tree)
二叉树是每个节点最多有两个子节点的树结构,分别称为左子节点(Left Child)和右子节点(Right Child)。
二叉树的操作
- 插入节点:向二叉树中插入节点。
- 查找节点:在二叉树中查找指定节点。
- 遍历树:遍历二叉树的所有节点。
二叉树的代码实现
下面是二叉树的 C# 代码实现:
using System;
public class TreeNode<T>
{
public T Data {
get; set; }
public TreeNode<T> Left {
get; set; }
public TreeNode<T> Right {
get; set; }
public TreeNode(T data)
{
this.Data = data;
this.Left = null;
this.Right = null;
}
}
public class BinaryTree<T>
{
public TreeNode<T> Root {
get; private set; }
public BinaryTree()
{
this.Root = null;
}
public void Insert(T data)
{
if (Root ==