首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从上到下逐行遍历C#中的树

在C#中,要从上到下逐行遍历树,可以使用广度优先搜索(BFS)算法。以下是一个示例代码:

代码语言:csharp
复制
using System;
using System.Collections.Generic;

public class TreeNode
{
    public int val;
    public TreeNode left;
    public TreeNode right;

    public TreeNode(int val = 0, TreeNode left = null, TreeNode right = null)
    {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}

public class TreeTraversal
{
    public static void LevelOrderTraversal(TreeNode root)
    {
        if (root == null)
            return;

        Queue<TreeNode> queue = new Queue<TreeNode>();
        queue.Enqueue(root);

        while (queue.Count > 0)
        {
            TreeNode node = queue.Dequeue();
            Console.Write(node.val + " ");

            if (node.left != null)
                queue.Enqueue(node.left);

            if (node.right != null)
                queue.Enqueue(node.right);
        }
    }
}

public class Program
{
    public 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);

        // 从上到下逐行遍历树
        TreeTraversal.LevelOrderTraversal(root);
    }
}

上述代码中,我们定义了一个TreeNode类来表示树的节点,其中包含一个val属性表示节点的值,以及leftright属性表示左子树和右子树。然后,我们定义了一个TreeTraversal类,其中的LevelOrderTraversal方法使用队列实现广度优先搜索算法来逐行遍历树。最后,在Main方法中构建了一个示例树,并调用LevelOrderTraversal方法进行遍历。

这种遍历方式适用于需要按层级顺序处理树节点的场景,例如树的层级遍历、查找特定层级的节点等。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券