满二叉树的输出(分割法)
Posted KevinBear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了满二叉树的输出(分割法)相关的知识,希望对你有一定的参考价值。
代码
import java.util.Arrays;
public class TreeShape {
static int N=6;//输出多少行
static int max= maxLen();//单个字符长度
public static void main(String[] args) {
满二叉树图();
}
private static void 满二叉树图() {
int n = 0;
for (int i = 0; i < N; i++) {
int t = (int) Math.pow(2,i);
___();
for (int j = 0; j < t; j++) {
分割输入(t*2);
fmt(n+++"");
分割输入(t*2);
fmt("|");
}
System.out.println();
}
___();
}
private static void 分割输入(int t) {
int n = (int)Math.pow(2,N)/t-1;
留白(n);
}
public static int maxLen(){
int maxNum = (int) (Math.pow(2,N) - 2);
int count = 1;
while (maxNum/10!=0){
count++;
maxNum/=10;
}
return count;
}
public static void ___(){//输出n个格式_
int t =(int)Math.pow(2,N);
char[] c = new char[max];
Arrays.fill(c,\'-\');
String s = new String(c);
for (int i = 0; i < t; i++) {
fmt(s);
}
System.out.println();
}
public static void 留白(int n){//输出n个格式空白
for (int i = 0; i < n; i++) {
fmt("");
}
}
public static void fmt(String s){//以最大数字长度输出
System.out.print(String.format("%-"+max+"s",s));
}
}
结果:
以上是关于满二叉树的输出(分割法)的主要内容,如果未能解决你的问题,请参考以下文章
关于树的判定(满二叉树完全二叉树平衡二叉树相似二叉树等价二叉树)