如何在c#中直观地打印n元树?

如何在c#中直观地打印n元树?,c#,tree,C#,Tree,我在c#中创建了一个基本的n元树: 树: 公共类树 { 私有节点根; 公树() { root=null; } 公共节点根 { 得到 { 返回根; } 设置 { 根=值; } } 公共T搜索(T数据) { 返回(root!=null)?raiz.search(数据):默认值(T); } } 节点: 公共类节点 { 私有T数据; 私人名单儿童; 公共节点(T数据) { 这个数据=数据; this.childs=null; } 公共T数据 { 得到 { 返回数据; } 设置 { 数据=价值; } }

我在c#中创建了一个基本的n元树:

树:

公共类树
{
私有节点根;
公树()
{
root=null;
}
公共节点根
{
得到
{
返回根;
}
设置
{
根=值;
}
}
公共T搜索(T数据)
{
返回(root!=null)?raiz.search(数据):默认值(T);
}
}

节点:

公共类节点
{
私有T数据;
私人名单儿童;
公共节点(T数据)
{
这个数据=数据;
this.childs=null;
}
公共T数据
{
得到
{
返回数据;
}
设置
{
数据=价值;
}
}
公开名单儿童
{
得到
{
返回儿童;
}
设置
{
childs=价值;
}
}
公共void addChild(节点)
{
if(child==null)
{
childs=新列表();
}
添加(节点);
}
公共T搜索(T数据)
{
if(this.data.Equals(data))
{
返回此.data;
}否则
{
for(int i=0;i
我想要一个树的可视化表示,这样我就可以快速测试子节点和节点是否在正确的位置,并测试我的遍历(预序/按序/按序/按序/后序),类似这样

PrintTree(yourTreeInstance.Root,4,0);

如果足够将其输出到控制台:

public void PrintTree(Node node, int indentSize, int currentLevel)
{
    var currentNode = string.Format("{0}{1}", new string(" ",indentSize*currentLevel, node.Data);
    Console.WriteLine(currentNode)
    foreach(var child in node.Children)
    {
        PrintTree(child, indentSize, currentLevel+1);
    }
}
然后像这样称呼它

PrintTree(yourTreeInstance.Root,4,0);

您还可以使用Debug.WriteLine而不是主控制台输出到调试控制台

您使用的是winforms还是WPF?您有什么问题吗Bryan?即使您向我们提供了数据结构,我们也不是代码编写服务只是一个简单的建议-您可以将
节点
定义为
公共类节点:List{public T data]{get;private set;}公共节点(T data){this.data=data;}}
PrintTree(yourTreeInstance.Root,4,0);