希望创建一种有效的方式来显示非二叉树结构

Looking to create an efficient way to display a non-binary tree structure

我正在为 python 中的 class 项目创建遗传算法。该算法运行完美,但我想创建树的图像,而不仅仅是简单的文本输出。我已经编写了一个函数,它对最多约 4 层的树表现良好。在此之上,显示效果不佳,最后空白太多 space。我知道为什么,但我可能需要很长时间才能想出更好的解决方案。

有谁知道是否存在创建紧凑的非二叉树显示的函数?我正在寻找一个可以调整每个分支的分支,因此它们之间没有大量空白 space,因为很多分支深度是不均匀的。我发现了很多二叉树显示函数,但这不起作用,因为我的一些节点有 3 个子节点。

您可以在图像中看到它运行良好和运行不佳。

看起来不错的树: https://drive.google.com/file/d/1j2BQjanTDgvzttedUyhxnbWhkXuQwyaG/view?usp=sharing

不太好的树(空白太多space): https://drive.google.com/file/d/1Gh90e3JvAeCB_U2NhvvouZulM4CVQ8ZH/view?usp=sharing

提前致谢。

使用graphviz。 特别是,dot 布局生成器应该能很好地满足您的需求。

您可能还会发现 NetworkX drawing 模块很有帮助。