在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
方法按节点值对树节点进行排序。最后,我们遍历排序后的树节点并输出它们的值。