在C#中,為TreeNode實現搜索功能,你可以使用遞歸方法來遍歷樹結構并查找與搜索關鍵詞匹配的節點。以下是一個簡單的示例,展示了如何實現這個功能:
首先,創建一個TreeNode類:
public class TreeNode
{
public string Text { get; set; }
public List<TreeNode> Children { get; set; }
public TreeNode(string text)
{
Text = text;
Children = new List<TreeNode>();
}
}
接下來,創建一個遞歸方法來搜索與關鍵詞匹配的節點:
public TreeNode SearchNode(TreeNode root, string keyword)
{
if (root == null)
{
return null;
}
if (root.Text.Contains(keyword))
{
return root;
}
foreach (var child in root.Children)
{
TreeNode result = SearchNode(child, keyword);
if (result != null)
{
return result;
}
}
return null;
}
現在,你可以使用這個方法來搜索樹結構中的節點。例如:
public static void Main(string[] args)
{
TreeNode root = new TreeNode("Root");
TreeNode child1 = new TreeNode("Child1");
TreeNode child2 = new TreeNode("Child2");
TreeNode child3 = new TreeNode("Child3");
TreeNode grandChild1 = new TreeNode("GrandChild1");
TreeNode grandChild2 = new TreeNode("GrandChild2");
root.Children.Add(child1);
root.Children.Add(child2);
child1.Children.Add(child3);
child3.Children.Add(grandChild1);
child3.Children.Add(grandChild2);
TreeNode result = SearchNode(root, "GrandChild");
if (result != null)
{
Console.WriteLine("Found node: " + result.Text);
}
else
{
Console.WriteLine("Node not found");
}
}
這個示例將創建一個樹結構,并使用SearchNode
方法搜索包含"GrandChild"關鍵字的節點。如果找到匹配的節點,它將輸出節點的文本。