温馨提示×

c# treenode节点如何排序

c#
小樊
91
2024-09-19 21:26:19
栏目: 编程语言

在C#中,对TreeNode节点进行排序可以使用List<TreeNode>来存储树节点,然后使用LINQ(Language Integrated Query)进行排序。以下是一个示例:

using System;
using System.Collections.Generic;
using System.Linq;

public class TreeNode
{
    public int Value { get; set; }
    public List<TreeNode> Children { get; set; }

    public TreeNode(int value)
    {
        Value = value;
        Children = new List<TreeNode>();
    }
}

public class Program
{
    public static void Main()
    {
        // 创建树节点
        TreeNode root = new TreeNode(1);
        TreeNode child1 = new TreeNode(2);
        TreeNode child2 = new TreeNode(3);
        TreeNode child3 = new TreeNode(4);
        TreeNode child4 = new TreeNode(5);

        // 添加子节点
        root.Children.Add(child1);
        root.Children.Add(child2);
        child1.Children.Add(child3);
        child1.Children.Add(child4);

        // 将树节点添加到列表中
        List<TreeNode> treeNodes = new List<TreeNode> { root };

        // 使用LINQ按节点值排序
        var sortedTreeNodes = treeNodes.OrderBy(node => node.Value).ToList();

        // 输出排序后的树节点
        foreach (var node in sortedTreeNodes)
        {
            Console.WriteLine(node.Value);
            PrintChildren(node);
        }
    }

    public static void PrintChildren(TreeNode node)
    {
        foreach (var child in node.Children)
        {
            Console.WriteLine("  " + child.Value);
            PrintChildren(child);
        }
    }
}

在这个示例中,我们首先创建了一个树节点结构,然后将树节点添加到一个List<TreeNode>中。接下来,我们使用LINQ的OrderBy方法按节点值对树节点进行排序。最后,我们遍历排序后的树节点并输出它们的值。

0