package com.mjy.printer; /** ┌──800 ┌──760 │ └──600 ┌──540 │ └──476 │ └──445 ┌──410 │ └──394 381 │ ┌──190 │ │ └──146 │ ┌──40 │ │ └──35 └──12 └──9 * @author MJ Lee * */ public class InorderPrinter extends Printer { private static String rightAppend; private static String leftAppend; private static String blankAppend; private static String lineAppend; static { int length = 2; rightAppend = "┌" + Strings.repeat("─", length); leftAppend = "└" + Strings.repeat("─", length); blankAppend = Strings.blank(length + 1); lineAppend = "│" + Strings.blank(length); } public InorderPrinter(BinaryTreeInfo tree) { super(tree); } @Override public String printString() { StringBuilder string = new StringBuilder( printString(tree.root(), "", "", "")); string.deleteCharAt(string.length() - 1); return string.toString(); } /** * 生成node节点的字符串 * @param nodePrefix node那一行的前缀字符串 * @param leftPrefix node整棵左子树的前缀字符串 * @param rightPrefix node整棵右子树的前缀字符串 * @return */ private String printString( Object node, String nodePrefix, String leftPrefix, String rightPrefix) { Object left = tree.left(node); Object right = tree.right(node); String string = tree.string(node).toString(); int length = string.length(); if (length % 2 == 0) { length--; } length >>= 1; String nodeString = ""; if (right != null) { rightPrefix += Strings.blank(length); nodeString += printString(right, rightPrefix + rightAppend, rightPrefix + lineAppend, rightPrefix + blankAppend); } nodeString += nodePrefix + string + "\n"; if (left != null) { leftPrefix += Strings.blank(length); nodeString += printString(left, leftPrefix + leftAppend, leftPrefix + blankAppend, leftPrefix + lineAppend); } return nodeString; } }

Cathcode LV1
2022年5月2日
wang512237140 LV20
2021年12月16日
matintalorr LV10
2021年8月31日
xkfkb2341 LV1
2020年11月28日
xwq1234567 LV1
2020年10月27日
Cc1996 LV1
2020年10月26日
huangwu1026 LV1
2020年7月29日
2650343087 LV6
2020年5月26日
唐力刚 LV1
2020年5月13日
kyq123 LV1
2020年4月10日

wuziayng1232 LV10
2023年6月1日
我爱你野狼123
2023年3月22日
暂无贡献等级
666ing LV2
2023年2月26日
heqian LV17
2023年1月10日
微信网友_6248713511227392 LV11
2022年12月5日
vitos5n LV10
2022年9月6日
crosa_Don LV18
2022年7月6日
wang512237140 LV20
2021年12月16日
Luo qian98vu LV1
2021年11月10日
tangjj7260 LV18
2021年10月25日