首页 >

怎么用C语言画出二叉树的图形? – 网络|

电压低时 LED灯闪烁怎么处理,功能需求怎么写,怎么点名学生回答问题电压低时 LED灯闪烁怎么处理,功能需求怎么写,怎么点名学生回答问题怎么用C语言画出二叉树的图形? - 网络|怎么用C语言画出二叉树的图形

假设你的树节点类型包含了指向它的两个子节点的引用以及父节点的引用(本人看到的代码中大部分都是这样实现的)。使用层次遍历的次序遍历整棵树的所有节点,统计每一层中包含节点的数量,然后根据你想要显示的区域的宽度,计算当前层两两节点之间的间距。然后依次画出当前层的那个节点,如果该节点有父节点,则画出之间的连线。为了方便,你可以在每个节点中保存该节点的中心坐标。另外一种思路,你也可以从树的根节点开始画,先统计树的最大深度,然后计算每一层之间的间距,将根节点放在第一层的中点。然后根据根节点的位置推算两个节点的相对位置。之后分别让左右子树作为根节点,使用相同思路绘制。

不过这样画出来的树并不是很美观,但是作为测试或者现实树的结构来说已经很直观了。

谢谢。欢迎交流任何想法!


怎么用C语言画出二叉树的图形? - 网络|
  • 详细理解C语言中1和1的区别与应用 - 网络|
  • 详细理解C语言中1和1的区别与应用 - 网络| | 详细理解C语言中1和1的区别与应用 - 网络| ...

    怎么用C语言画出二叉树的图形? - 网络|
  • 如何看待新出的树莓派4?是否真的性能直追主流的PC? - 网络|
  • 如何看待新出的树莓派4?是否真的性能直追主流的PC? - 网络| | 如何看待新出的树莓派4?是否真的性能直追主流的PC? - 网络| ...

    怎么用C语言画出二叉树的图形? - 网络|
  • c语言与面向对象程序设计的区别和联系是什么? - 网络|
  • c语言与面向对象程序设计的区别和联系是什么? - 网络| | c语言与面向对象程序设计的区别和联系是什么? - 网络| ...