二叉树的文本模式输出

上周一数据结构上机,题目是”二叉树相关算法的实验验证”,其中要求

为便于观察程序的运行结果,设计的输出函数能在输出设备上以图形或表格或其它直观的形式输出计算结果。
例如将二叉树输出为

二叉树输出演示
二叉树输出演示

好吧,比较友好的让他显示树状就行了,可是想了很久就是不知道怎么办。。。上网搜索了一下”输出二叉树“,真正找到两篇有用的文章,一篇是CSDN copica博客的,一篇是中国知网的期刊论文(江顺亮任燕)(我连论文都搜到了!!)

不过两篇都写的好复杂啊,copica君贴的代码太长了,看不太懂,我就把它打印下来了(这就是上一篇文章的作用…把网页选定的内容另存为pdf),顺便把知网那篇论文也下载了pdf一起打印出来。研究了一下结合两篇文章终于在上周六完成作业了哈哈~

效果:

二叉树输出演示
二叉树输出演示

二叉树输出演示
二叉树输出演示

算法思路:

首先进行非递归的中根遍历,遍历过程中设置每个结点的坐标(即距离屏幕左边的偏移量offset),然后层次遍历根据坐标确定位置,因此需要给结点的struct增加几个数据域:

然后输出时层次遍历,使用队列打印每一层,因为我采用的输出方式是copica同学的方式,因此每层分为”连接符和数据+子树连接符竖线”,但copica的代码貌似使用了另一个print类来实现,因此我根据知网那篇论文还是用队列实现,程序中结点出队后又让他入队目的是打印”子树连接符”这一层,然后出队后就是子结点入队了,这个方法真巧妙~

以下贴出完整代码~~(点击方框右上在新窗口打开)

参考:

  1. 二叉树的图形显示
  2. 二叉树结构的文本模式显示

Update at 2016-06-18 22:49:37 多叉树的输出


“二叉树的文本模式输出”的29个回复

Loading...

发表评论

电子邮件地址不会被公开。 必填项已用*标注