gpt4 book ai didi

language-agnostic - 如何以格式良好的方式打印出一棵树?

转载 作者:行者123 更新时间:2023-12-04 18:52:28 28 4
gpt4 key购买 nike

在树结构中打印树的最简单方法是什么?如...

                  some root
/ | \
child1 child2 child 3
/
anotherchild / \
yup another

即使手动格式化也很难。如何让程序以这种方式打印一棵树?

最佳答案

除非有一些不错的图形库可供您使用,否则您将很难以您描述的方式表示层次结构。

假设您想将其打印到控制台或文件,您将不得不预先计算整个树中所有数据元素的长度,以便正确排列它们。你如何处理换行之类的事情?

更好的方法是垂直表示树,使用缩进来显示子元素。

Root
- Child1
- Grandchild1
- Grandchild2
- Child2
- Grandchild3
- Grandchild4

这更易于编码,并且更能容忍换行之类的东西——因为一行中只有一个元素。这就是文件夹浏览器或 xml 文档可能显示其分层数据的方式。

要以这种方式执行此操作,您需要进行深度优先遍历,并在递归步骤之前打印出节点:
public void PrintNode(TreeNode node)
{
PrintNode(node, 0);
}

private void PrintNode(TreeNode node, int indentation)
{
// Print the value to the console/file/whatever
// This prefixes the value with the necessary amount of indentation
Print(node.Value, indentation);

// Recursively call the child nodes.
foreach(TreeNode childNode in node.Children)
{
PrintNode(childNode, indentation + 1); // Increment the indentation counter.
}
}

希望有帮助

关于language-agnostic - 如何以格式良好的方式打印出一棵树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4180659/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com