/StructCharDraw

以字符的形式进行二叉树、链表等数据结构的可视化

Primary LanguageJava

将二叉树和链表结构通过字符可视化的小项目

  • 项目简介:现有的数据结构可视化工具,可以生成树、链表等的图片或动画。 然而,此类图片或动画在命令行或文本编辑区域展示。 为了方便在文本中展示数据结构以及方便开发调试(其实就是为了方便leetcode做题调试),开发了该字符可视化的项目。
  • 安装方法:直接将该文件放入工作目录中,或直接将StructCharDrawAdd.txt中的代码复制到目标文件中(例如,直接复制到leetcode的解答代码中)

二叉树可视化

  • 根据输入字符串,层序遍历生成二叉树

  • 调用方法:StructCharDraw.drawTree();

  • 例:

    input:

    [1,2,3,5,5,8,7,null,1,5,5,8,7,1,5,5,8,7,1,5,5,8,7,null,null,3,4,5,null,7,8]
    

    output:

                                   1                               
                   {~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~}               
                   2                               3               
           {~~~~~~~+~~~~~~~}               {~~~~~~~+~~~~~~~}       
           5               5               8               7       
           +~~~}       {~~~+~~~}       {~~~+~~~}       {~~~+~~~}   
               1       5       5       8       7       1       5   
             {~+~}   {~+~}   {~+~}   {~+~}           {~+~}   {~+   
             5   8   7   1   5   5   8   7           3   4   5     
            {+}                                                    
            7 8                                                    
    
    

链表可视化

  • 类似这种形式,链表死循环时会截断
  • 调用方法:
    • StructCharDraw.drawLinkList(buildLinkList("[1,2,3,4,5]"));
    • StructCharDraw.drawLinkList(root);
  • 例:
[2]->[3]->[4]->[3]->[4]

todo:二叉树代码优化

  • 当前叶子节点的字符大小固定为1,后续支持变长度的叶子节点大小