using System;
using System.Collections.Generic;
public class TreeNode
{
public string Value { get; set; }
public List<TreeNode> Children { get; set; }
public TreeNode(string value)
{
Value = value;
Children = new List<TreeNode>();
}
public void AddChild(TreeNode child)
{
Children.Add(child);
}
}
public class Tree
{
public TreeNode Root { get; private set; }
public Tree(TreeNode root)
{
Root = root;
}
// Pre-order traversal: Root, Left, Right
public void PreOrderTraversal(TreeNode node)
{
if (node == null) return;
Console.WriteLine(node.Value); // Visit the root
foreach (var child in node.Children)
{
PreOrderTraversal(child); // Traverse the children
}
}
}
class Program
{
static void Main()
{
// Create tree nodes
TreeNode root = new TreeNode("Root");
TreeNode child1 = new TreeNode("Child 1");
TreeNode child2 = new TreeNode("Child 2");
TreeNode child11 = new TreeNode("Child 1.1");
TreeNode child12 = new TreeNode("Child 1.2");
// Build the tree structure
root.AddChild(child1);
root.AddChild(child2);
child1.AddChild(child11);
child1.AddChild(child12);
// Create a tree instance and perform pre-order traversal
Tree tree = new Tree(root);
tree.PreOrderTraversal(root);
}
}
TreeNode 类:
Value
和一个 Children
列表。AddChild
方法用于向当前节点添加子节点。Tree 类:
Root
。PreOrderTraversal
方法实现了先序遍历(根、左、右)。Program 类:
TreeNode
实例并构建了一个简单的树结构。Tree
类进行先序遍历并输出节点值。这个代码示例展示了如何在 C# 中实现一个简单的树结构,并对其进行遍历。
上一篇:c#字符串转日期
下一篇:rabbitmq c#
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站