在C#中,可以使用遞歸的方式實現二叉樹的深度優先搜索。以下是一個示例代碼:
using System;
public class Node
{
public int data;
public Node left, right;
public Node(int item)
{
data = item;
left = right = null;
}
}
public class BinaryTree
{
Node root;
public BinaryTree()
{
root = null;
}
private void DepthFirstSearch(Node node)
{
if (node == null)
return;
Console.Write(node.data + " ");
DepthFirstSearch(node.left);
DepthFirstSearch(node.right);
}
public void DepthFirstSearch()
{
DepthFirstSearch(root);
}
public static void Main()
{
BinaryTree tree = new BinaryTree();
tree.root = new Node(1);
tree.root.left = new Node(2);
tree.root.right = new Node(3);
tree.root.left.left = new Node(4);
tree.root.left.right = new Node(5);
Console.WriteLine("Depth First Search of binary tree is: ");
tree.DepthFirstSearch();
}
}
在上面的示例中,首先定義了一個Node
類來表示二叉樹的節點,然后定義了一個BinaryTree
類來表示二叉樹。DepthFirstSearch
方法用于遞歸地進行深度優先搜索,先訪問當前節點,然后分別遞歸訪問左子樹和右子樹。在Main
方法中,創建一個二叉樹并調用DepthFirstSearch
方法進行深度優先搜索。