中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

在c#中如何遍歷treenode樹

c#
小樊
87
2024-09-19 21:20:26
欄目: 編程語言

在C#中,遍歷TreeNode樹通常涉及到深度優先搜索(DFS)或廣度優先搜索(BFS)。以下是使用這兩種方法遍歷樹的示例:

深度優先搜索(DFS)

使用遞歸實現DFS:

using System;
using System.Collections.Generic;
using System.Windows.Forms;

public class TreeTraversal
{
    public static void Main()
    {
        // 創建一個示例樹
        TreeNode root = new TreeNode("Root");
        TreeNode child1 = new TreeNode("Child1");
        TreeNode child2 = new TreeNode("Child2");
        TreeNode grandChild = new TreeNode("GrandChild");

        root.Nodes.Add(child1);
        root.Nodes.Add(child2);
        child1.Nodes.Add(grandChild);

        // 使用DFS遍歷樹
        DFS(root);
    }

    public static void DFS(TreeNode node)
    {
        if (node == null) return;

        Console.Write(node.Text + " ");

        foreach (TreeNode child in node.Nodes)
        {
            DFS(child);
        }
    }
}

廣度優先搜索(BFS)

使用隊列實現BFS:

using System;
using System.Collections.Generic;
using System.Windows.Forms;

public class TreeTraversal
{
    public static void Main()
    {
        // 創建一個示例樹
        TreeNode root = new TreeNode("Root");
        TreeNode child1 = new TreeNode("Child1");
        TreeNode child2 = new TreeNode("Child2");
        TreeNode grandChild = new TreeNode("GrandChild");

        root.Nodes.Add(child1);
        root.Nodes.Add(child2);
        child1.Nodes.Add(grandChild);

        // 使用BFS遍歷樹
        BFS(root);
    }

    public static void BFS(TreeNode node)
    {
        if (node == null) return;

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

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

            foreach (TreeNode child in currentNode.Nodes)
            {
                queue.Enqueue(child);
            }
        }
    }
}

在這兩個示例中,我們分別創建了一個簡單的樹結構,并使用DFS和BFS方法遍歷了樹的節點。你可以根據需要修改這些示例以適應你的具體需求。

0
师宗县| 宜良县| 元谋县| 开封县| 罗山县| 保亭| 镇雄县| 万源市| 星子县| 万安县| 杭锦旗| 芷江| 丹棱县| 浮山县| 册亨县| 宜春市| 班玛县| 奈曼旗| 安乡县| 西乡县| 朝阳区| 浠水县| 瑞丽市| 嘉义县| 沙河市| 集安市| 桓台县| 凤冈县| 社旗县| 蓬莱市| 宿松县| 南木林县| 长海县| 稷山县| 营口市| 无为县| 镇平县| 仙游县| 九台市| 丘北县| 沭阳县|