首页 > 其他 > 详细

满二叉树的输出(分割法)

时间:2021-05-30 15:38:13      阅读:11      评论:0      收藏:0      [点我收藏+]

代码

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));
    }
}

结果:

技术分享图片

满二叉树的输出(分割法)

原文:https://www.cnblogs.com/KevinBear/p/14827601.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!