在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
方法按節點值對樹節點進行排序。最后,我們遍歷排序后的樹節點并輸出它們的值。