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