我一直在学习如何使用C++中的链接列表编写二叉树搜索.一切正常,我理解二进制树是如何工作的,但是我希望能够打印出头部顶部的树以及下面的所有节点,我试图在这里演示:
[root or head]
[left] [right]
[left] [right] [left] [right]
Run Code Online (Sandbox Code Playgroud)
我使用控制台打印树,因此可以随意使用'cout'或'printf'.我相信我需要设置控制台的宽度,但我不知道如何开始.
谢谢,Y_Y
正如sbi所提到的,制作左对齐版本比中心对齐版本更容易.但无论你选择哪种对齐,你的基本算法方法应该是:
首先遍历树的广度.通过使用具有以下算法的队列来执行此操作:
(见http://www.cs.bu.edu/teaching/c/tree/breadth-first/)
为了打印中心对齐的树,也要执行以下操作(仅在树完成时才有效.如果它不完整,最简单的方法是制作一个完整的副本,其中应该有节点的每个地方都有某种形式一个空节点):
| 归档时间: |
|
| 查看次数: |
3729 次 |
| 最近记录: |