(注意之前代码有错误目前已更新)
最近学习黑红二叉树,我想如果把二叉树可视化在操作的时候如果出错会比较容易发现。
在网上搜了一圈只有比较简单的ascii 的代码。
自己用Ipython写了一个,比较适合学生。
PS:算法没有做优化,加上matplotlib本身就慢,不适合较高的树。
效果见图:
基本算法:
首先获取二叉树的高度 h,二叉树在所有节点都有左右在子节点的情况下,在高度 y时 X轴包含节点个。
比如 高度 2 有 = 2个节点.
创建一个Y轴长度相同的二维矩阵,X轴包含了所有节点和节点左右的空白区域,长度为