Java/JavaScript 实现的平衡二叉树以及打印工具(控制台、web端)
mvn clean install -Dmaven.test.skip=true
- 运行 TreePrinterApplication
- 在控制台输入命令与程序交互(下面有命令集)或者进入tree-printer-web/目录下,通过浏览器访问tree-printer.html就可以进行web端的增删查功能演示
- 如果是想打印自己写的树那也是没问题的,只要你的树是二叉树,那么只要实现com.kilobytech.treeprinter.tree.INode接口,实现里面的四个方法即可
有一点需要注意,就是因为这节点的数据必须要有大小,可以比较排序,所以数据必须必须实现了Comparable接口的。比如你的数据是Integer类型的,那么Integer是有大小可以比较的,因为Integer实现了Comparable 接口 然后只需要 new PrintableTree(你的树根节点).print();就可以打印出你的树型图了
package com.kilobytech.treeprinter.tree; import java.util.Objects; public interface INode<E extends Comparable> { /** * 获取数据 * @return */ E getData(); /** * 获取父节点 * @return */ INode<E> getParent(); /** * 获取左节点 * @return */ INode<E> getLeft(); /** * 获取右节点 * @return */ INode<E> getRight(); /** * 从本节点开始向上递归计算深度 * @return depth */ default int calculateDepth() { if (Objects.isNull(getParent())) { return 1; } return getParent().calculateDepth() + 1; } }
插入节点:
输入一个数字或多个数字用","分隔,例如:1,2,3,4,5
删除节点:
delete 2
树状图显示:
show或者show 3
清空树上所有节点:
clean
批量插入:
batch 个数,例如:batch 6,批量随机插入 6 个元素
顺序批量插入:
asc batch 起始数字,例如:asc batch 6,从0开始一直插入到6
倒序批量插入:
desc batch 起始数字,例如:desc batch 6,从6开始一直插入到0
查看:
look 节点数据,例如:look 3,则打印数据为三的节点的高度、深度、平衡因子、坐标信息
搜索:
search 节点数据,例如 search 2,则搜索 2
查看size:
size
- Fork 本仓库
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request
- 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
- 码云官方博客 blog.gitee.com
- 你可以 https://gitee.com/explore 这个地址来了解码云上的优秀开源项目
- GVP 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
- 码云官方提供的使用手册 https://gitee.com/help
- 码云封面人物是一档用来展示码云会员风采的栏目 https://gitee.com/gitee-stars/